排序的方法

冒泡排序

  1. 比较相邻的元素。如果第一个比第二个大,就交换它们两个;
  2. 第一次下来后最大的元素会排在最右边;
  3. 下一次重复比较时,不会再去判断最后一个元素,以此讲第二大的元素给筛选出来;
  4. 重复置只需要判断以此为止;
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
}	

选择排序

  1. 从第二个元素中开始遍历(默认第一个是最小的元素),找到最小的值替换默认最小的那个值;
  2. 从第三个元素中开始遍历,找到最小值做替换;
  3. 以此类推直到无元素可遍历
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
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值