冒泡排序: (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 冒泡排序内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
本文向大家介绍Scala实现冒泡排序、归并排序和快速排序的示例代码,包括了Scala实现冒泡排序、归并排序和快速排序的示例代码的使用技巧和注意事项,需要的朋友参考一下 1、冒泡排序 2、归并排序 3、快速排序 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍汇编实现冒泡排序的方法示例,包括了汇编实现冒泡排序的方法示例的使用技巧和注意事项,需要的朋友参考一下 冒泡排序算法的运作如下:(从后往前) 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复
本文向大家介绍JavaScript 冒泡排序和选择排序的实现代码,包括了JavaScript 冒泡排序和选择排序的实现代码的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所述: 下面在看下Javascript实现三种排序:冒泡排序、选择排序、插入排序的代码 以上所述是小编给大家介绍的JavaScript 冒泡排序和选择排序的实现代码,希望对大家有所帮助,如果
本文向大家介绍Python选择排序、冒泡排序、合并排序代码实例,包括了Python选择排序、冒泡排序、合并排序代码实例的使用技巧和注意事项,需要的朋友参考一下 前两天刚装了python 3.1.1, 禁不住技痒写点code。 1.选择排序 2.冒泡排序 3.合并排序
本文向大家介绍Objective-C实现冒泡排序算法的简单示例,包括了Objective-C实现冒泡排序算法的简单示例的使用技巧和注意事项,需要的朋友参考一下 简介 冒泡算法是一种基础的排序算法,这种算法会重复的比较数组中相邻的两个元素。如果一个元素比另一个元素大(小),那么就交换这两个元素的位置。重复这一比较直至最后一个元素。这一比较会重复n-1趟,每一趟比较n-j次,j是已经排序好的元素个数。
本文向大家介绍冒泡排序的原理及java代码实现,包括了冒泡排序的原理及java代码实现的使用技巧和注意事项,需要的朋友参考一下 概述 冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的开始。 简单点说,就是: 冒泡排序是將比較大的