企业展示型网站建设,wordpress主题压缩包,专业搭建网站,温州h5建站冒泡排序
冒泡排序#xff08;英语#xff1a;Bubble Sort#xff09;是一种简单的排序算法。它重复地遍历要排序的数列#xff0c;一次比较两个元素#xff0c;如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换#xff0c;也就是说该…冒泡排序
冒泡排序英语Bubble Sort是一种简单的排序算法。它重复地遍历要排序的数列一次比较两个元素如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
冒泡排序算法的运作如下
比较相邻的元素。如果第一个比第二个大升序就交换他们两个。对每一对相邻元素作同样的工作从开始第一对到结尾的最后一对。这步做完后最后的元素会是最大的数。针对所有的元素重复以上的步骤除了最后一个。持续每次对越来越少的元素重复上面的步骤直到没有任何一对数字需要比较。 冒泡排序的分析 def bubble_sort(alist):for j in range(len(alist)-1,0,-1):# j表示每次遍历需要比较的次数是逐渐减小的for i in range(j):if alist[i] alist[i1]:alist[i], alist[i1] alist[i1], alist[i]li [54,26,93,17,77,31,44,55,20]
bubble_sort(li)
print(li)时间复杂度
最优时间复杂度O(n)最坏时间复杂度O(n2)稳定性稳定 选择排序 选择排序Selection sort是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小大元素存放到排序序列的起始位置然后再从剩余未排序元素中继续寻找最小大元素然后放到已排序序列的末尾。以此类推直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上则它不会被移动。选择排序每次交换一对元素它们当中至少有一个将被移到其最终位置上因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中选择排序属于非常好的一种。 选择排序分析 def selection_sort(alist):n len(alist)# 需要进行n-1次选择操作for i in range(n-1):# 记录最小位置min_index i# 从i1位置到末尾选择出最小数据for j in range(i1, n):if alist[j] alist[min_index]:min_index j# 如果选择出的数据不在正确位置进行交换if min_index ! i:alist[i], alist[min_index] alist[min_index], alist[i]alist [54,226,93,17,77,31,44,55,20]
selection_sort(alist)
print(alist)时间复杂度 最优时间复杂度O(n2)最坏时间复杂度O(n2)稳定性不稳定