[Go] Golang练习项目-GO实现冒泡排序以及优化算法
发布时间:2021-05-21 06:48:23 所属栏目:大数据 来源: https://www.jb51.cc
导读:核心原理: 比较相邻的两个元素,较大的一个交换移动到右边 优化: 已经排好序的元素不再进行比较,减少比较次数 下面函数的变量flag 用于判断后续元素有无发生交换,没有发生交换的直接停止遍历 变量lastSwapIndex,记录最后一次发生交换的位置,后续元素不
核心原理: 比较相邻的两个元素,较大的一个交换移动到右边 优化: 已经排好序的元素不再进行比较,减少比较次数 下面函数的变量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 } } }@H_403_61@ ? (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |