当前位置: 首页 > 图灵资讯 > 行业资讯> Python冒泡排序、快速排序、堆排序

Python冒泡排序、快速排序、堆排序

来源:图灵python
时间: 2024-10-09 18:05:27

本文主要向大家介绍冒泡排序、快速排序、堆排序的使用代码以及他们的测试过程和结果。

1、冒泡排序

defbubble_sort(array,n):
foriinrange(n):
forjinrange(1,n-i):
ifarray[j-1]>array[j]:
array[j-1],array[j]=array[j],array[j-1]

2、快速排序

defquick_sort(array,l,r):
ifl<r:
q=partition(array,l,r)
quick_sort(array,l,q-1)
quick_sort(array,q+1,r)

defpartition(array,l,r):
x=array[r]
i=l
forjinrange(l,r):
ifarray[j]<=x:
array[i],array[j]=array[j],array[i]
i+=1
array[i],array[r]=array[r],array[i]
returni

3、堆排序

注意堆排序外面还有一个在下面测试部分的循环。

#堆排序
defheap_sort(array,n,length):
l=2*n+1
r=2*n+2
ifl<=length-1:
heap_sort(array,l,length)
ifr<=length-1:
heap_sort(array,r,length)

ifl>=length:
return
index=l
ifr<lengthandarray[r]>array[l]:
index=r

ifarray[n]<array[index]:
array[n],array[index]=array[index],array[n]

4、测试部分

if__name__=='__main__':
a=input("输入数组元素:").split("")
a=list(map(int,a))
b=a.copy()
c=a.copy()

#冒泡排序
bubble_sort(a,len(a))
print(a)

#快速排序
quick_sort(b,0,len(b)-1)
print(b)

#堆排序
foriinrange(len(c)):
heap_sort(c,0,len(c)-i)
c[0],c[len(c)-i-1]=c[len(c)-i-1],c[0]
print(c)

5、测试结果

输入数组元素:4836715
[1,3,4,5,6,7,8]
[1,3,4,5,6,7,8]
[1,3,4,5,6,7,8]

Processfinishedwithexitcode0

文章来源于网络,如有雷同,请联系作者。