排序算法之冒泡排序
2018-03-09 15:06
197 查看
冒泡排序 BubbleSort
介绍:冒泡排序的原理非常简单,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。步骤:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对第0个到第n-1个数据做同样的工作。这时,最大的数就“浮”到了数组最后的位置上。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
源代码:(python实现)
def bubble_sort(arry): n = len(arry) #获得数组的长度 for i in range(n): for j in range(1,n-i): if arry[j-1] > arry[j] : #如果前者比后者大 arry[j-1],arry[j] = arry[j],arry[j-1] #则交换两者 return arry |
优化2:记录某次遍历时最后发生数据交换的位置,这个位置之后的数据显然已经有序,不用再排序了。因此通过记录最后发生数据交换的位置就可以确定下次循环的范围了。
转至:http://wuchong.me/blog/2014/02/09/algorithm-sort-summary/
相关文章推荐
- 常用的排序算法(包括冒泡排序,选择排序,插入排序,希
- 排序算法-冒泡排序
- PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
- 经常使用排序算法实现[交换排序之冒泡排序、高速排序]
- 排序算法2之冒泡排序
- 经典排序算法(一)--冒泡排序、快速排序java实现
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 经典排序算法 - 冒泡排序
- 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序
- 排序算法(三)交换类排序:冒泡排序和快速排序
- 排序算法之冒泡排序
- 【排序算法】冒泡排序 bubble sort(交换类排序)
- 排序算法之冒泡排序 C++和PHP实现
- 排序算法——冒泡排序
- JAVA中排序算法(冒泡排序、选择排序、插入排序、快速排序)
- 排序算法一(冒泡排序、选择排序、插入排序)
- 排序算法--冒泡排序
- 常见的排序算法(三) 交换排序(冒泡排序,快速排序)
- 排序算法 -- 冒泡排序