排序算法

冒泡排序

func BubbleSort(data []int) {
	if data == nil || len(data) < 2 {
		return
	}

	for i := 0; i < len(data)-1; i++ {
		for j := 0; j < len(data)-i-1; j++ {
			if data[j] > data[j+1] {
				data[j], data[j+1] = data[j+1], data[j]
			}
		}
	}
}

快速排序

func QuickSort(data []int, left, right int) {
	val := data[(left+right)/2]

	i, j := left, right
	for data[j] > val {
		j--
	}

	for data[i] < val {
		i++
	}

	data[i], data[j] = data[j], data[i]
	i++
	j--

	if i < right {
		QuickSort(data, i, right)
	}

	if j > left {
		QuickSort(data, left, j)
	}
}