go实现冒泡排序的示例代码

时间:2021-05-22

冒泡排序: (Bubble Sorting)基本思想是通过对待排序序列从后向前(从下标较大的元素开始)以此比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐渐从后补移向前部(从下标较大的单元移向单位较小的单元),就像水底的气泡一样逐渐向上冒。

因为排序的过程中,各元素不断的接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换,从而减少不必要的比较(优化)。

BubleSort.go

package main;import "fmt"func main() { array := []int{5,4,3,4,2} res := bubleSort(array) fmt.Println(res)}func bubleSort(array []int) []int { length :=len(array) //isChange :=false for i:=0;i<length;i++ { for j:=0;j<length-i-1;j++ { // j <= length-i-1 这个是关键,每次 i ,少比较最后一位数组 if array[j] > array[j+1] { array[j+1],array[j] = array[j],array[j+1] //isChange = true } } // 直接跳下次循环 // if !isChange { // break; // } } return array;}

冒泡冒泡,就是每次循环都将最大的值,冒泡到数组最后,第二次冒泡也是从数组下标0位置开始。

到此这篇关于go实现冒泡排序的示例代码的文章就介绍到这了,更多相关go 冒泡排序内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章