冒泡排序
- 比较相邻的元素。如果第一个比第二个大,就交换它们两个;
- 第一次下来后最大的元素会排在最右边;
- 下一次重复比较时,不会再去判断最后一个元素,以此讲第二大的元素给筛选出来;
- 重复置只需要判断以此为止;
func BubbleSort(x []int)[]int{
for i:=0;i<len(x)-1;i++ {
for j:=0;j<len(x)-1-i;j++ {
if x[j]>x[j+1] {
var tmp int
tmp=x[j+1]
x[j+1]=x[j]
x[j]=tmp
}
}
}
return x
}
选择排序
- 从第二个元素中开始遍历(默认第一个是最小的元素),找到最小的值替换默认最小的那个值;
- 从第三个元素中开始遍历,找到最小值做替换;
- 以此类推直到无元素可遍历
func SelectSort(x []int)[]int{
var minIndex int
var tmp int
for i:=0;i<len(x)-1;i++ {
minIndex=i
for j:=i+1;j<len(x);j++ {
if x[minIndex]>x[j] {
minIndex=j
}
}
tmp=x[i]
x[i]=x[minIndex]
x[minIndex]=tmp
}
return x
}
插入排序
- 默认第一个元素是已经排好序的;从第二个元素开始遍历;依次和已经排好序的元素比较大小(从后往前);比他小的话就将其排在那个元素的前面
func InsertSort(x []int)[]int{
for j:=1;j<len(x)-1;j++ {
for i:=j-1;i>=0 ;i--{
if x[j]<x[i] {
x[i]=x[j]
}
}
}
return x
}