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