1.冒泡排序算法
func bsort(a []int) {
for i:=0;i<=len(a);i++{
for j:=1;j<len(a)-i;j++{
if a[j] < a[j-1]{
a[j],a[j-1] = a[j-1],a[j]
}
}
}
}
func main() {
a :=[]int{1,9,5,7,3,8,23,0}
bsort(a)
fmt.Println(a)
}
2.选择排序算法
func ssort(n []int) {
for i:=0;i<len(n);i++{
//记住下标
var min int = i
for j:=i+1;j<len(n);j++{
if n[min]>n[j]{
min = j
}
n[i],n[min] = n[min],n[i]
}
}
}
func main() {
a :=[]int{1,9,5,7,3,8,23,0}
ssort(a)
fmt.Println(a)
}
3.插入排序算法
//插入排序
func isort(n []int) {
for i:=1;i<len(n);i++{
for j:=i;j>0;j--{
if n[j]>n[j-1]{
break
}else{
n[j],n[j-1] = n[j-1],n[j]
}
}
}
}
func main() {
a :=[]int{1,9,5,7,3,8,23,0}
isort(a)
fmt.Println(a)
}
4.快排算法
//快排
func qsort(a []int,left,right int) {
if left >=right{
return
}
val :=a[left]
k := left
for i :=left+1;i<=right;i++{
if a[i]<val{
a[k] =a[i]
a[i] =a[k+1]
k++
}
}
a[k] = val
qsort(a,left,k-1)
qsort(a,k+1,right)
}
func main() {
//定义一个列表,列表是值类型,可以通过切片转成引用类型
b :=[...]int{8,7,5,4,10,2,9}
qsort(b[:],0,len(b)-1)
fmt.Println(b)
}
|
请发表评论