演算法思想:
效率及穩定性:
適用場景:
示例**:
private
static
void
sort
(int a)
}if (tag)
}}複製**
演算法思想:
效率及穩定性:
適用場景:
遞迴出口,條件為(low>high)
給指標i、j和基準值key賦值
完成一趟排序,迴圈條件為(i != j)
迴圈內部,
從右往左找小於等於key的值下標 j,條件為(a[j]>key)
從左往右找大於key的值下標 i,條件為(a[i]<=key&& i交換a[i]和a[j]的值
完成一趟迴圈之後,交換key和a[i]的位置
開始遞迴:
對key左邊的數進行排序
對key右邊的數進行排序
示例**:
public
static
void
quicksort
(int a)
}//核心遞迴體
private
static
void
quicksort
(int a, int low, int high)
int i = low;
int j = high;
int key = a[low]; //基準元素取第乙個元素,取其他的直接改就行,28、29行也要改
//完成一趟排序
while (i != j)
while (a[i] <= key && i < j)
//交換兩數字位置
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}//調整key的位置,將key的位置與ij相遇的位置交換
int temp = a[i];
a[i] = a[low];
a[low] = temp;
//對key左邊的數進行排序
quicksort(a, low, i - 1);
//對key右邊的數進行排序
quicksort(a, i + 1, high);
}複製**
萌新筆記之交換排序
聽名字還挺可愛的,冒泡 為啥叫冒泡呢?對n個元素進行排序,進行n 1次迴圈。在對第k次迴圈中,對前n k個元素從前往後進行比較,每次比較相鄰的兩個元素,若前乙個元素大於後乙個元素,就交換,否則保持位置不變 就是實現了把前n k個中最大放到了最後 所以每次排序一定能保證當前第k大的回落到第n k個位置...
排序專題之交換排序
在交換排序這一類中,分為氣泡排序和快速排序,快速排序是建立在 氣泡排序基礎上的乙個優化,很有意義的乙個排序,在各種acm競賽 以及其他領域中經常被用到 接下來,我們先看一看氣泡排序。氣泡排序基本思想 通過無序區中相鄰記錄關鍵字間的比較和位置的交換,使關鍵字最小的記錄如氣泡一般逐漸往上 漂浮 直至 水...
排序演算法之交換排序
交換排基本思想 兩兩比較待排序元素的關鍵字,發現兩個元素的次序相反時即進行交換,知道沒有反序的元素為止。本節介紹兩種交換排序,即氣泡排序和快速排序。氣泡排序 每次只能和相鄰的位置數進行交換,效率低 include int a 100 void quicksort int left,int right...