温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python中5个常见的排序算法分别是什么

发布时间:2020-11-09 11:29:42 来源:亿速云 阅读:207 作者:小新 栏目:编程语言

这篇文章主要介绍了python中5个常见的排序算法分别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

1、插入排序:每步将一个待排序的记录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。

代码如下:

#L=[5,2,3,1,6,9]
# def insert_sort(list):
# leng=len(list);//求list长度
# for i in range(1,leng):
# temp=list[i];//设置哨兵
# j=i;
# while(j>0 and list[j-1]>temp):
# list[j]=list[j-1];//大的元素后移
# j=j-1;
# list[j]=temp;//遇到比哨兵小的元素,将其设置为哨兵
# return list;
# print(insert_sort(L))

2、冒泡排序:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到

 结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来

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

代码如下:

# def bubble_sort(list):
# leng=len(list);
# for i in range(0,leng)://控制趟数
# flag=True
# for j in range(1,leng-i):
# if list[j-1]>list[j]:
# flag=False;
# list[j-1],list[j]=list[j],list[j-1];//交换这两个数
# if flag:
# break
# return list;
# L=[9,5,6,8,4,2]
# print(bubble_sort(L))

3、选择排序:它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全

部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。

代码如下:

# def select_sort(list):
# leng=len(list)
# for i in range(0,leng):
# min=i //设置哨兵,假设第一个元素是最小的
# for j in range(i+1,leng):
# if list[j]<list[i]:
# min=j //开始寻找比哨兵小的元素。如果小则将重新设置哨兵位置
# if min!=i:
# list[i],list[min]=list[min],list[i]#交换这两个数
# return list
# L=[-4,1,2,5,3,-2]

4、快速排序:它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的

所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

代码如下:

# def partition(list,low,high)://划分算法
# key=list[low]
# while(low<high):
# while(low<high and list[high]>=key):high=high-1
# if low<high:
# list[low]=list[high]
# low=low+1
# while(low<high and list[low]<=key):low=low+1
# if low<high:
# list[high]=list[low]
# high=high-1
# list[low]=key
# return low
#
# def quick_sort(list,low,high)://快速排序算法
# if low<high:
# pos=partition(list,low,high)
# quick_sort(list,low,pos-1)
# quick_sort(list,pos+1,high)
# return list
# L=[45,12,-32,65,28,9,-75,34]
# print(quick_sort(L,0,len(L)-1))

5、堆排序:堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种

代码如下:

#堆排序
# def HeapAdjust(list,pos,len)://调整堆算法
# lchild=2*pos+1
# rchild=2*pos+2
# min=pos
# if pos<(len-1)/2:
# if lchild<len and list[lchild]<list[min]:
# min=lchild;
# if rchild<len and list[rchild]<list[min]:
# min=rchild;
# if min!=pos:
# list[pos],list[min]=list[pos],list[min]
# HeapAdjust(list,min,len)
# return list
#
# def BuildHeap(list,len)://建堆算法
# i=len/2-1
# while(i>=0):
# HeapAdjust(list,i,len)
# i=i-1
# return list
#
# def Heap_sort(list,len)://堆排序算法
# BuildHeap(list,len)
# while(len):
# list[0],list[len-1]=list[len-1],list[0]
# len=len-1
# HeapAdjust(list,len,0)
# return list
#
# L=[45,12,-32,65,28,9,-75,34]
# print(Heap_sort(L,len(L)))

感谢你能够认真阅读完这篇文章,希望小编分享python中5个常见的排序算法分别是什么内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI