package main
import (
"fmt")/*
todo:直接插入
*/func straightinsertionsort(slice int)
slice[j + 1] = temp;
} fmt.println("直接插入", slice)
return}/*
todo:希爾排序
*/func shellsort(slice int)
slice[j + step] = temp
} step = step / 2
} fmt.println("希爾排序", slice)
return}/*
todo:簡單選擇排序
*/func selectsort(slice int)
} if (k != i)
} fmt.println("簡單選擇", slice)
return}/*
todo:堆排序
*/func heapbuild(root int, slice int, size int)
} if slice[m] > slice[root]
} return
}func heapsort(slice int)
//這裡是大於等於1
for last := size - 1; last >= 1; last--
fmt.println("堆 排 序", slice)
return}/*
todo:氣泡排序
*/func bubblesort(slice int)
} }fmt.println("氣泡排序", slice)}/*
todo:快速排序
*/func quicksort(slice int, start int, end int)
first, last := start, end
key := slice[first]
for last > first
slice[first] = slice[last]
for last > first&&slice[first] <= key
slice[last] = slice[first]
} slice[first] = key
quicksort(slice, start, first - 1)
quicksort(slice, first + 1, end)}/*
todo:歸併排序
*/func merge(slice int, slicetemp int, start, mid, end int) else
} for i <= mid
for j <= end
for i := start; i <= end; i++
}func mergesort(slice int, slicetemp int, start int, end int) }/*
todo:基數排序
*/func radixsort(slice int)
} var bucket [10]int
temp := make(int, size, size)
radix := 1
for i := 0; i < maxnumofdigital; i++
for j := 0; j < size; j++
for j := 1; j < 10; j++
for j := size - 1; j >= 0; j--
for j := 0; j < size; j++
radix *= 10
} fmt.println("基數排序", slice)
}func main()
slicetemp := make(int, len(slice), len(slice))
copy(slicetemp, slice)
straightinsertionsort(slicetemp)
copy(slicetemp, slice)
shellsort(slicetemp)
copy(slicetemp, slice)
selectsort(slicetemp)
copy(slicetemp, slice)
heapsort(slicetemp)
copy(slicetemp, slice)
bubblesort(slicetemp)
copy(slicetemp, slice)
quicksort(slicetemp, 0, len(slicetemp) - 1)
fmt.println("快速排序", slicetemp)
copy(slicetemp, slice)
slicetemp2 := make(int, len(slice), len(slice))
mergesort(slicetemp, slicetemp2, 0, len(slice) - 1)
fmt.println("歸併排序", slicetemp)
copy(slicetemp, slice)
radixsort(slicetemp)
}
day 16 C 各種排序
include include using namespace std todo 直接插入排序 時間複雜度o n 2 最好情況 有序,o n 最差情況 到序,o n 2 空間複雜度o 1 穩定性 穩定 vectorstraightinsertionsort vectorarray array j 1...
演算法(15) 各種常用的排序演算法
僅記錄學習筆記,如有錯誤歡迎指正。記錄一下常用的陣列的各種排序 複雜度o n2 public static void bubblesort int array int length array.length 外層迴圈控制比較輪數i for int i 0 i length i 複雜度o n2 pub...
排序1 5 各種排序演算法的總結和比較
嚴重宣告 此貼 http www.cnblogs.com flyingbread archive 2007 02 02 636993.html,請註明出處。1 快速排序 quicksort 快速排序是乙個就地排序,分而治之,大規模遞迴的演算法。從本質上來說,它是歸併排序的就地版本。快速排序可以由下面...