Was ist die Komplexität von go eingebaut append
Funktion? Was ist mit String-Verkettung mit +
?Big O von append in golang
Ich möchte ein Element aus einem Slice entfernen, indem Sie zwei Segmente mit Ausnahme dieses Elements anfügen, z. http://play.golang.org/p/RIR5fXq-Sf
nums := []int{0, 1, 2, 3, 4, 5, 6, 7}
fmt.Println(append(nums[:4], nums[5:]...))
=> [0 1 2 3 5 6 7]
http://golang.org/pkg/builtin/#append sagt, dass, wenn das Ziel eine ausreichende Kapazität hat, dann wird diese Scheibe resliced
ist. Ich hoffe, dass "Reslicing" eine konstante Zeitoperation ist. Ich hoffe auch das gleiche gilt für String-Verkettung mit +
.
Einige Hinweise auf das Verhalten: http://criticalindirection.com/2016/02/17/slice-with-a-pinch-of-salt/ – user31986