Algorithm - acehippo/slowmotion GitHub Wiki

quick sort

func quickSort(arr []int, left int, right int) {

	i := left
	j := right

	tmp := 0
	pivot := arr[(left+right)/2]

	for i <= j {
		for arr[i] < pivot {
			i++
		}
		for arr[j] > pivot {
			j--
		}

		if i <= j {
			tmp = arr[i]
			arr[i] = arr[j]
			arr[j] = tmp
			i++
			j--
		}
	}

	if left < j {
		quickSort(arr, left, j)
	}
	if i < right {
		quickSort(arr, i, right)
	}
}