快速排序:
1)設定兩個
變數i、j,
排序開始的時候:i=0,j=n-1;
2)以第乙個
陣列元素作為關鍵資料,賦值給key,即key=a[0];
3)從j開始向前搜尋,即由後開始向前搜尋(j--),找到第乙個小於key的值a[j],將a[j]和a[i]互換;
4)從i開始向後搜尋,即由前開始向後搜尋(i++),找到第乙個大於key的a[i],將a[i]和a[j]互換;
5)重複第3、4步,直到i=j; (3,4步中,沒找到符合條件的值,即3中a[j]不小於key,4中a[i]不大於key的時候改變j、i的值,使得j=j-1,i=i+1,直至找到為止。找到符合條件的值,進行交換的時候i, j指標位置不變。另外,i==j這一過程一定正好是i+或j-完成的時候,此時令迴圈結束)。
#include void quicksort(int k, int n)
} for (; ipoint)
}k[i] = point;
quicksort(k,i);
quicksort(k+i+1,n-i-1);
} }/*void quicksort(int a, int numsize)
}for (; j>i; i++)
}a[i] = val;
quicksort(a,i);
quicksort(a+i+1, numsize-i-1);
} }}*/int main()
; quicksort(a,10);
printf("the result of sort is: ");
for( i=0; i<10; i++)
printf("\n");
return 0;
}
排序演算法之交換排序
交換排基本思想 兩兩比較待排序元素的關鍵字,發現兩個元素的次序相反時即進行交換,知道沒有反序的元素為止。本節介紹兩種交換排序,即氣泡排序和快速排序。氣泡排序 每次只能和相鄰的位置數進行交換,效率低 include int a 100 void quicksort int left,int right...
排序演算法之交換排序
交換,就是根據序列中兩個元素關鍵字的比較結果來對換這兩個記錄在序列中的位置。基於交換的排序 演算法有很多。以氣泡排序和快速排序舉例。氣泡排序 public static int bubblesort int array return newarray 穩定性 氣泡排序是乙個穩定的排序方法。氣泡排序中...
排序演算法之交換排序
交換排序的思想是,比較兩個元素的大小,然後確定是否交換位置,主要分為兩種 氣泡排序,依次比較相鄰的兩個元素,把最值放在頭部或者尾部,接下來再用同樣的方法取最值放在頭部或尾部。如下 void bubblesort int a,int n 快速排序,首先設定乙個分界值,然後通過分界值,將陣列分成兩部分,...