python
主页 > 脚本 > python >

操作python实现冒泡排序算法的代码

2019-12-02 | 秩名 | 点击:



冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它反复地遍历要排序的数列,一次比力两个元素,如果他们的顺序错误就把他们互换过来。遍历数列的事情是反复地进行直到没有再需要互换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由互换慢慢“浮”到数列的顶端。

冒泡排序算法的运作如下:

1、比力相邻的元素。如果第一个比第二个大(升序),就互换他们两个。
2、对每一对相邻元素作同样的事情,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3、针对所有的元素反复以上的步调,除了最后一个。
4、连续每次对越来越少的元素反复上面的步调,直到没有任何一对数字需要比力。

冒泡排序,一个经典的排序算法,因在算法运行中,,极值会像水底的气泡一样逐渐冒出来,因此而得名。

冒泡排序的历程是比力两个相邻元素的巨细,然后按照巨细互换位置,这样从列表左端开始冒泡,最后最大值会依次从右端冒出。
 


 

实现冒泡排序:
 

def bubble_sort(nums):
 
 for i in range(len(nums) - 1):
 
  for j in range(len(nums) - i - 1):
 
   if nums[j] > nums[j + 1]:
 
    nums[j], nums[j + 1] = nums[j + 1], nums[j]
 
 return nums

python实现冒泡排序的焦点思想是通过从列表一端迭代循环元素,再通过一个循环让这个元素之后的元素相邻两个比力,从而依次将最大值移动到最末端,如下图示意。


 

本想放gif图的,放不上有点问题。

关于冒泡排序的时间庞大度,在上面python实现的代码中时间庞大度是n的平方,虽然可以再考虑一下极端的环境:当行列已经从小到大排好序大概从大到小排好序,从小到大排好顺序时可以只扫描一遍就结束排序,此时时间庞大度为O(n),如果是从大到小,那么就需要扫描n-1次,同时需要比力互换n-1次,时间庞大度为n的平方 。


原文链接:https://www.cnblogs.com/pypypy/p/11960134.html
相关文章
最新更新