Go語言 快速排序法

2021-10-22 09:59:32 字數 1178 閱讀 3521

go 寫法

package main

import

"fmt"

func

main()

fmt.

println

(freesort

(arr)

)// [1 2 3 4 5 7 9]

}func

freesort

(arr [

]int)[

]int

else

if v < sign }if

len(lefta)

>0if

len(righta)

>

0var res [

]int

res =

(lefta, sign)

res =

(res, righta...

)return res

}

對比一下php的寫法

$demo=[

6,2,

5,4,

7,1,

9];print_r

(demo

($demo))

;function

demo

($demo

)else}if

($l>0)

if($r>0)

return

array_merge

($left,[

$curren],

$right);

}// 結果:array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 [4] => 6 [5] => 7 [6] => 9 )

個人心得

對go語言還不是特別了解, 只能寫成這樣, 後邊可能會更新一下

go語言對於格式要求很嚴格: 最初我是把要排序的用陣列型別, 函式裡邊用切片型別, 實際開發的時候各種報錯, 主要是傳入型別錯誤, 因為需要用到遞迴, 函式內也需要自我呼叫, 傳入的引數函式內外就必須一致, 所以外邊也必須用切片型別,不能用陣列型別,

切片型別更加靈活, 用慣了php的陣列用go開發的時候就會感覺特別彆扭, 主要還是go語言的陣列定義後就不能更改長度, 切片就更好一些, 可以做更多的事情, 追加陣列/元素等

C語言之氣泡排序 快速排序法 希爾排序法

眾所周知程式設計排序方法眾多而且程式的好壞就取決於演算法的使用 下面是博主現在會的幾種排序方法希望對大家有所幫助。希爾排序法 author stylle date 2020 11 14 15 52 03 lasteditors stylle lastedittime 2020 11 14 15 52...

go語言排序之選擇排序 氣泡排序 快速排序

即每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法。package main import fmt 選擇排序 func main...

隨筆 go語言版快速排序

快速排序對於乙個合格的程式設計師來說都是基礎,不管你工作中會不會用到,它的思想都是很值得我們學習的。我就是由於對它的思想掌握不是很透徹死在tx二面,往事不要再提,吃一塹長一智,趁還來來得及補救加油吧!快排的思想其實說起來也不是很難,我這裡就簡單說一下。而且這篇東西並不是講演算法的,只是隨手寫了個go...