本文主要向大家介绍冒泡排序、快速排序、堆排序的使用代码以及他们的测试过程和结果。
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
文章来源于网络,如有雷同,请联系作者。