常用排序算法实现(Go版本)
void maopao_sort(int *array, int len)
{
int i, j, tmp;
for (i = 0; i < len; i++)
{
for (j = i + 1; j < len; j++)
{
if (array[i] > array[j])
{
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
}
}
func QuickSort(arr []int, left, right int) {
var QuickSorting = func(arr []int, left, right int) int {
tmp := arr[right]
for left < right {
for arr[left] <= tmp && left < right {
left++
}
if left < right {
arr[right] = arr[left]
}
for arr[right] >= tmp && left < right {
right--
}
if left < right {
arr[left] = arr[right]
}
}
arr[left] = tmp
return left
}
if left < right {
mid := QuickSorting(arr, left, right)
QuickSort(arr, left, mid-1)
QuickSort(arr, mid+1, right)
}
}
func QuickSortNotByRecursion(arr []int) {
}
func HeapSort(arr []int) {
var CreateHeap = func(arr []int, i, length int) {
tmp := arr[i]
for j := 2*i + 1; j < length; j = j*2 + 1 {
if j+1 < length && arr[j]