Skip to content

Commit d369a00

Browse files
authored
Create algos.go
1 parent da12c42 commit d369a00

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

Diff for: algos.go

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
func quickSort(arr []int, low, high int) []int {
3+
if low < high {
4+
var p int
5+
arr, p = partition(arr, low, high)
6+
arr = quickSort(arr, low, p-1)
7+
arr = quickSort(arr, p+1, high)
8+
}
9+
return arr
10+
}
11+
12+
func quickSortStart(arr []int) []int {
13+
return quickSort(arr, 0, len(arr)-1)
14+
}
15+
16+
func partition(arr []int, low, high int) ([]int, int) {
17+
pivot := arr[high]
18+
i := low
19+
for j := low; j < high; j++ {
20+
if arr[j] < pivot {
21+
arr[i], arr[j] = arr[j], arr[i]
22+
i++
23+
}
24+
}
25+
arr[i], arr[high] = arr[high], arr[i]
26+
return arr, i
27+
}

0 commit comments

Comments
 (0)