1. 簡單選擇排序
void
selectsort
(int list)
if(k != i)
}}
2. 堆排序進行堆排序時,我們得先明白幾個概念:
堆:堆實際上是一棵完全二叉樹,其任何一非葉節點滿足性質:
key[i]<=key[2i+1]&&key[i]<=key[2i+2]
或key[i]>=key[2i+1]&&key>=key[2i+2]
大根堆:每個節點的值都大於或者等於它的左右子節點的值。如下圖:
小根堆:每個節點的值都小於或者等於它的左右子節點的值。如下圖:
這裡堆排序使用的是大根堆,所以必須明白大根堆的概念。
void
headsort
(vector<
int>
&list)
for(
int i = len -
1; i >
0; i--)}
void
headmax
(vector<
int>
&list,
int p,
int len)
}
排序演算法 選擇排序 簡單選擇排序
package 選擇排序 簡單選擇排序 不穩定 基本思想 在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換 然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止。public class 簡單選擇排序 system.out.println 排序之前 f...
排序演算法 簡單選擇排序
簡單選擇排序是一種選擇排序。1.簡單選擇排序的定義 每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。2.簡單選擇排序的流程 例項 注 紅色數字是位置發生變化的數值。3.簡單選擇排序的 實現 public class selectsort 若min有變化,...
排序演算法 簡單選擇排序
簡單選擇排序法就是通過n i次關鍵字比較,找到最小的關鍵字下標,最後在替換n i下標和最小下標的值。簡單排序的思想和氣泡排序的思想的區別是氣泡排序是相鄰關鍵字兩兩比較,如果小,則直接替換,可能在一輪迴圈會進行多次值交換。而簡單選擇排序法是一輪迴圈找到最小關鍵字下標,最後進行最多一次替換。public...