知行编程网知行编程网  2022-12-22 00:30 知行编程网 隐藏边栏  5 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python常见的排序算法有哪些?的相关知识,包括python数据结构和算法,以及python算法题这些编程知识,希望对大家有参考作用。


大家都知道,关于


python算法有很多,其中最复杂的是python排序算法,因为它不是单一的,而是复杂的,排序算法有几种不同的方式,大家可以根据以下内容要求结合自己的项目,选择一个算法。


1、


插入排序:每一步插入一条待排序的记录,根据其key值的大小,插入到之前排序文件中的合适位置,直至全部插入。



代码如下:

#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常见的排序算法以及用法了,相信大家结合学习,一定更加深印象。



如需了解更多

python实用知识,点击进入

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享