首页天道酬勤python冒泡排序,快速排序的四种python实现

python冒泡排序,快速排序的四种python实现

张世龙 05-12 12:36 53次浏览

文章目录前言什么是气泡排序Python代码的补充说明

前言

在这里直接简单粗暴地展示原理和代码之后,让我们来看看比较官方的说明吧!

开头不明白的话请先读补充说明。

如果只想直接查看代码的点目录,Python代码有两种书写方式。

泡沫排序是指用自己的话来说有序列,如果arr[i]大于arr[ i 1],它们的相互作用位置是否不交换。

什么意思? 怎么做? 看图如下。

请无视字的丑陋

更换图中的p1 p2,向后移动1位。 不更换p1 p2,继续向后移动1位。 如果这样绕一圈后最大的数7落到末尾,我们就排列一个数。 接下来继续这样跑,但不用在意n-1的数量。 你不用在意已经排列的数量。下面再用一个比身高的例子。

红色的csdttt高于橙色的csdttt,他们交换位置

当红色csdttt高于黑色csdttt时,位置会发生调换

红色csdttt没有蓝色csdttt的高度就不更换位置

蓝色的csdttt比紫色的csdttt更换位置高

第一轮比较结束

前两次比较位置不变的第三次更换位置

第二次比较结束

第三个比较位置也不变

第四周也有n个的话就要进行n-1次比较

Python代码defbubble_sort(arr ) :n=len(arr ) #所有数组元素for i in range(n ) :forjinrange(0,n-i-1 ) 3360 零七, 4 ) bubblesort(arr ) print (arr ) def bubble _ sort (arr ) : ifarrisnoneandlen (arr ) 2: returnforendindinrange ) len :arr[I],arr[i 1]=arr[i 1], arr [ I ]返回arr=4) bubble_sort(arr ) print (arr ) # def bubble _ sort (arr ) : ifarrisnoneandlen (arr ) 2333: 哨兵forIinrange(end ) : if arr [ I ] arr [ i1 ] : arr [ I ],arr [ i1 ],arr [ I ] exchange=trueifnotexx

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。

它重复访问要排序的数列,一次比较两个要素,如果他们的顺序错了就交换他们。 访问数列的工作重复进行,直到不需要更换为止。 也就是说,该数列已经排序完毕。 这个算法名字的由来是,越小的要素经过交换,慢慢“漂浮”到数列的顶端。

以上是从私人教程借的,说实话,第一次接触的时候确实有点头晕。 特别是看了这个视频之后更头晕了。 所以,我去找别人的说法了。

引用别人的说法。

汽水比喻

喝汽水的时候,汽水里经常有很多小气泡,稀里哗啦地往上飘。 这是因为,构成小气泡的二氧化碳比水轻,所以小气泡可以一点一点地向上浮动。 我们的气泡排序之所以叫气泡排序,是因为这个排序算法的每个元素都可以像小气泡一样,根据自己的大小一点一点地移动到数组的一侧。 上面的比喻让我们科普了一下,看到这个比喻后,有点感觉。 我知道什么是泡沫的排列顺序。 然后,看看其原理吧

原理

比较邻接的要素。 如果第一个大于第二个,就交换它们。 否则不更换。 从第一对到最后一对相邻元素执行相同的操作。 这样,最后一个要素是最大的数量。 对所有元素重复上述步骤,但最后排列的元素除外。 继续对越来越少的元素重复上述步骤,直到没有需要比较的数字对。

python双向冒泡排序,python冒泡算法和排序算法 python用冒泡法排序,冒泡算法python