golang實現快速排序算法

package algorithm

func QuickSort(arr []int, p int, q int) {
	if p < q {
		i := partation(arr, p, q)
		QuickSort(arr, p, i-1)
		QuickSort(arr, i+1, q)
	}
}

func partation(arr []int, p int, q int) int {
	i := p
	x := arr[p]

	for j := p + 1; j <= q; j++ {
		if arr[j] < x {
			i = i + 1
			arr[i], arr[j] = arr[j], arr[i]
		}
	}

	arr[p], arr[i] = arr[i], arr[p]
	return i
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章