Golang實現常用六大排序演算法

2021-09-24 00:08:52 字數 1775 閱讀 4434

使用golang實現了以下排序演算法:

package main

import

("fmt"

"math/rand"

"sort"

"time"

)const

( num =

10000

// 測試陣列的長度

rangenum =

100000

// 陣列元素大小範圍

)func

main()

//生成隨機數組

func

generaterand()

intreturn arr

}//比較兩個切片

func

issame

(slice1, slice2 [

]int

)bool

if(slice1 ==

nil)

!=(slice2 ==

nil)

for i, num :=

range slice1

}return

true

}

func

bubble

(arr [

]int)}

true

}}

func

selectsort

(arr [

]int)}

}}

func

insertsort

(arr [

]int)}

}}

func

quicksort

(arr [

]int

, l, r int)}

i++arr[r]

, arr[i]

= arr[i]

, arr[r]

quicksort

(arr, l, i-1)

quicksort

(arr, i+

1, r)

}}

//合併

func

merge

(arr [

]int

, l, mid, r int

)else

}for

; i < n1; i++

for; j < n2; j++

}//分治

func

mergesort

(arr [

]int

, l, r int

)}

以大頂堆實現

//堆調整

func

adjust_heap

(arr [

]int

, i, size int

)if r < size && arr[r]

> arr[m]

if m != i }}

//建堆

func

build_heap

(arr [

]int)}

func

heapsort

(arr [

]int

)}

github: golangbasicsortalgorithm/sortalgorithm.go

有幫助感謝給star

有錯誤歡迎指正.

六大排序粗解

public class paixu system.out.println 排序後 a bubble a a select a a insert a a shell a,a.length guibing a,0,a.length 1 fast a,0,a.length 1 for int i 0 i...

常見六大排序演算法詳解以及比較

氣泡排序 英語 bubble sort 是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算...

六大排序(選擇,插入,冒泡,希爾,快排,堆排序)

1.實現簡單選擇排序 直接插入排序和氣泡排序。2.實現希爾排序演算法。3.實現快速排序演算法。4.實現堆排序演算法。想想這麼多排序方法,乍一看挺複雜,寫起來還挺簡單的 include include include include include include include includeusi...