gzyueqian
13352868059

粤嵌Python学习方法 解析Python冒泡排序和选择排序

更新时间: 2019-01-16 14:47:14来源: 粤嵌教育浏览量:5143

  Python的冒泡排序和选择排序各自是什么意思呢,Python学习方法有哪些?就跟着粤嵌一起来看看。

  Python数据结构之冒泡排序

  冒泡排序是一种基础排序算法,在python中,我们利用列表的的方式来完成,它对列表中的元素进行重复的遍历,在遍历的同时进行比较,如果两个数没有按照我们规定的顺序进行排列,就按照我们预先设定好的是顺序或者逆序输出,类似于烧开水时的气泡,主要操作如下:

  比较相邻的元素。如果个比第二个大(升序),就交换他们两个。

  对每一对相邻元素作同样的工作,从开始对到结尾的一对。这步做完后,的元素会是的数。

  针对所有的元素重复以上的步骤,除了一个。

  持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

  时间复杂度

  时间复杂度:O(n)(表示遍历一次发现没有任何可以交换的元素,排序结束。)

  坏时间复杂度:O(n2)

  稳定性:稳定

  附上完整代码:

  defbubble_sort(list):

  forjinrange(len(list)-1,0,-1):

  foriinrange(j):

  iflist>list[i+1]:

  list,list[i+1]=list[i+1],list

  List=[1,3,2,8,4,6,9,7]

  bubble_sort(List)

  print(List)

  Python数据结构之选择排序

  Python学习方法中选择排序(select_sort)是一个基础排序,它主要通过查找已给序列中的元素的或者小元素,然后将其放在序列的起始位置或者结束位置,并通过多次这样的循环完成对已知序列的排序,在我们对n个元素进行操作时,我们至少需要n-1次。

  defselect_sort(list):

  n=len(list)

  #进行n-1次操作

  foriinrange(n-1):

  min_dex=i

  #记录小的位置

  forjinrange(i+1,n):

  #从i+1选取小位置

  iflist[j]<list[min_dex]:

  min_dex=j

  #小位置不对应进行交换

  ifmin_dex!=i:

  list,list[min_dex]=list[min_dex],list

  List=[0,3,1,2,9,4,6,5,8,7]

  select_sort(List)

  print(List)

  Python学习方法关于Python冒泡排序和选择排序的内容就暂且说到这里,如想了解更多资讯,欢迎关注粤嵌教育。


免费预约试听课