在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
核心原理: 比较相邻的两个元素,较大的一个交换移动到右边 优化: 已经排好序的元素不再进行比较,减少比较次数 下面函数的变量flag 用于判断后续元素有无发生交换,没有发生交换的直接停止遍历 变量lastSwapIndex ,记录最后一次发生交换的位置,后续元素不再进行比较 //冒泡排序 func BubbleSort(arr *[]int){ flag:=true lastSwapIndex:=0 for i:=0;i<len(*arr)-1;i++{ sortBorder:=len(*arr)-1-i for j:=0;j<sortBorder;j++{ if (*arr)[j]>(*arr)[j+1]{ temp:=(*arr)[j] (*arr)[j]=(*arr)[j+1] (*arr)[j+1]=temp flag=false lastSwapIndex=j } } sortBorder=lastSwapIndex if flag{ break } } }
|
请发表评论