funcsort2(arr []int, start int, end int){if start >= end {return}var left, right, tem int
left, right = start, end
tem = arr[left]for left < right {for arr[right]>= tem && left < right {// 找到右边小于基准的元素
right--}for arr[left]<= tem && left < right {// 找到一个左边大于基准元素的元素
left++}if left < right {// left < right 说明上面的查找成功 进行元素交换
arr[left], arr[right]= arr[right], arr[left]}}// 当left = right 的时候,此时 arr[left] 元素一定小于 tem基准元素的值 直接交换就行
arr[left], arr[start]= tem, arr[left]sort(arr, start, left-1)sort(arr, left+1, end)}
4. 插入排序
// 插入排序funcsortNum(nums []int){for i :=1; i <len(nums); i++{for j := i; j !=0&& nums[j]< nums[j-1]; j--{
nums[j], nums[j-1]= nums[j-1], nums[j]}}}
5.选择排序
funcsortNum(nums []int){var minIndex intfor i :=0; i <len(nums)-1; i++{
minIndex = i
for j := i +1; j <len(nums); j++{if nums[j]< nums[minIndex]{
minIndex = j
}}
nums[minIndex], nums[i]= nums[i], nums[minIndex]}}