您的位置:首页 > 其它

排序算法之冒泡排序

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
不过针对上述代码还有两种优化方案。优化1:某一趟遍历如果没有数据交换,则说明已经排好序了,因此不用再进行迭代了。用一个标记记录这个状态即可。
优化2:记录某次遍历时最后发生数据交换的位置,这个位置之后的数据显然已经有序,不用再排序了。因此通过记录最后发生数据交换的位置就可以确定下次循环的范围了。
转至:http://wuchong.me/blog/2014/02/09/algorithm-sort-summary/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: