数据结构--快速排序

94 阅读1分钟

快速排序是效率比较高的一种排序算法,其思想主要是递归

package main

import "fmt"

func QuickSort(left int, right int, arr *[6]int) {
	l := left
	r := right
	pivot := arr[(left + right) / 2]
	for ; l < r; {
		for ; arr[l] < pivot; {
			l++
		}
		for ; arr[r] > pivot; {
			r--
		}
		if l >= r {
			break
		}
		arr[r], arr[l] = arr[l], arr[r]
		if arr[l] == pivot {
			r--
		}
		if arr[r] == pivot {
			l++
		}
	}
	if l==r {
		l++
		r--
	}
	if left < r {
		QuickSort(left, r, arr)
	}
	if right > l {
		QuickSort(l, right, arr)
	}
}

func main(){
	arr := [6]int{-9, 78, 0, 23, -57, 70}
	fmt.Println(arr)
	QuickSort(0, len(arr) - 1, &arr)
	fmt.Println(arr)

}

输出:

[-9 78 0 23 -57 70]
[-57 -9 0 23 70 78]