一、快排
func QuickSort(arr []int, start int,end int){
if start >= end{
return
}
p := GetIndex(arr,start,end)
QuickSort(arr,start,p-1)
QuickSort(arr,p+1,end)
}
func GetIndex(arr []int,l int,r int)int{
start:= l
end := r
tmp := arr[start]
for start < end {
for start < end && arr[end] >= tmp {
end--
}
if start < end{
arr[start] = arr[end]
start++
}
for start < end && arr[start] <= tmp{
start++
}
if start < end{
arr[end] = arr[start]
end--
}
}
arr[start] = tmp
return start
}
二、冒泡排序
func BubbleZsort(arr []int){
if arr == nil || len(arr) <= 1{
return
}
j:=0
flag := false
for i:=len(arr)-1;i>0;i--{
flag = false
for j = 0;j<i;j++{
if arr[j] > arr[j+1]{
arr[j],arr[j+1] = arr[j+1],arr[j]
flag = true
}
}
if !flag{
break
}
}
}
三、插入排序
func InsertSort(arr []int){
if arr == nil || len(arr) <= 1{
return
}
j:=0
v := 0
for i:= 1; i< len(arr);i++{
v = arr[i]
for j=i-1;j >=0;j--{
if arr[j] > v{
arr[j+1] = arr[j]
}else{
break
}
}
arr[j+1] = v
}
}
四、选择排序
func SelectSort(arr []int){
if arr == nil || len(arr) <= 1{
return
}
j := 0
min := 0
for i:=0;i<len(arr);i++{
min = i
for j = i;j<len(arr);j++{
if arr[j] < arr[min]{
min = j
}
}
if min != i{
arr[min],arr[i] = arr[i],arr[min]
}
}
}