This is a created article in which the information may have evolved or changed.
Package Mainimport ("FMT") func QuickSort (src []int, first, last int) {flag: = Firstleft: = firstright: = Lastif First > {Return}for First < last {//start looking forward from the far right to a smaller number than the selected tag value, then swap, and note the new indexfor of the tag value, the previous < last {if src[last] >= src [Flag] {Last-= 1continue} else {tmp: = Src[last]src[last] = Src[flag]src[flag] = Tmpflag = lastbreak}}//A number that is larger than the selected tag value from the leftmost start and then Swap and note the new Indexfor first < last {if Src[first] <= Src[flag] {first + = 1continue} else {tmp: = Src[first]src[first ] = Src[flag]src[flag] = Tmpflag = Firstbreak}}}quicksort (src, left, flag-1) QuickSort (SRC, flag+1, right)}func main () {src : = []int{5, 8, 1, 7, 9, 5, 2, 3, 9, 24}quicksort (SRC, 0, len (SRC)-1) fmt. PRINTLN (SRC)}
The quick sort is the more commonly used sort in the classic 8 sort, the time complexity is O (NLGN), and without the need for additional space like the merge sort, is a sort of in situ.