[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/ManolinCoder/leetcode/main/basic/sorting/QuickSort/QuickSort.go [Back]  [Original]

package main

import "fmt"

func partition(nums []int, low, high int) int {
	pivot := nums[low]
	for low < high {
		for low < high && nums[high] >= pivot {
			high--
		}
		nums[low] = nums[high]
		for low < high && nums[low] < pivot {
			low++
		}
		nums[high] = nums[low]
	}
	nums[low] = pivot
	return low
}

func _quickSort(nums []int, low, high int) {
	if low >= high {
		return
	}
	mid := partition(nums, low, high)
	_quickSort(nums, low, mid)
	_quickSort(nums, mid+1, high)
}

func quickSort(nums []int) {
	_quickSort(nums, 0, len(nums)-1)
}

func main() {
	nums := []int{1, 2, 7, 4, 5, 3}
	quickSort(nums)
	fmt.Println(nums)
}

Web Proxy Viewer  |  New URL  |  Original Page