package main
import "fmt"
func main() {
testArr := []int{2, 5, 3, 7, 4, 5, 8, 1, 4, 0}
fmt.Println(testArr)
quickSort(testArr, 0, len(testArr)-1)
fmt.Println(testArr)
}
func quickSort(arr []int, L, R int) {
flag := L
left := L
right := R
if L >= R {
return
}
for L < R {
for L < R {
if arr[R] >= arr[flag] {
R--
continue
}
arr[R], arr[flag] = arr[flag], arr[R]
flag = R
break
}
for L < R {
if arr[L] <= arr[flag] {
L++
continue
}
arr[L], arr[flag] = arr[flag], arr[L]
flag = L
break
}
}
quickSort(arr, left, flag-1)
quickSort(arr, flag+1, right)
}
二分排序
func binary_search(arr []int, key int) int {
var result int
var mid int
var low = 0
var high = len(arr) - 1
for low < high {
mid = (low + high) / 2
if arr[mid] > key {
high = mid - 1
} else if arr[mid] < key {
low = mid + 1
} else if arr[mid] == key {
result = mid
break
}
}
return result
}
func main() {
var arr = []int{1, 2, 3, 5, 7, 8, 9, 10}
i := binary_search(arr, 9)
fmt.Println("查找到的值:", i)
}