1.快速排序
def partition(a,p,q):
x=a[p];
i=p;
for j in xrange(p+1,q+1):
if a[j]=0 and a[j]>key :
a[j+1]=a[j];
j-=1;
a[j+1]=key;
a=[32,5,46,57,68,34,5,768,3,234,123,35,2,1];
insertsort(a);
print a;
3.歸併排序def merge(a,b,p,r,q):
i=p;
j=r+1;
k=0;
while i<=r and j<=q:
if a[i]>a[j]:
b[k]=a[j];
j+=1;
k+=1;
else:
b[k]=a[i];
i+=1;
k+=1;
if i<=r:
while i<=r:
b[k]=a[i];
k+=1;
i+=1;
if j<=q:
while j<=q:
b[k]=a[j];
k+=1;
j+=1;
for x in range(0,k):
a[p+x]=b[x];
def mergesort(a,p,q,b):
if p
演算法 排序之一 氣泡排序
如果資料按照一定的順序進行排序,資料處理的效率將顯著的提高。演算法是程式設計的精髓,乙個高效 而合適的演算法能極大的減少時間消耗與空間消耗,提到 合適 是因為沒有哪個演算法可以在所有情況下都表現出色,同樣是排序,在不同資料規模下各種排序演算法有不同的效能表現,選擇合適的解決演算法的才能最大限度地提高...
排序演算法之一 快速排序
1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數。1 預排序的輸入非常常見,因此不要選擇第乙個數作為基準數 2 隨機數的生成也較為昂貴 3 採用三數中值分割法 取左中右三個元素的中值作...
基本排序演算法 之一 氣泡排序
templatevoid bubblesort t arr,int len 未改進的氣泡排序,最好,最壞以及平均情況下的時間複雜度均為o n 2 排序過程可能在k k n 1 次外迴圈後已經達到有序狀態,但該演算法仍然會繼續比較相鄰元素,直到n 1次外迴圈結束。基於以上考慮,提出改進的氣泡排序演算法...