using namespace std;
const int max = 11;
int a[max], b[max];
void selectcirclesort(int n);
void selectcirclesort2(int n);
int main()
b[p] = 1;
p = (p == 0) ? n-1 : p-1; //獲取最大值下標
for (i=1; i a[k]) //更新最大值下標
k = j;
}if (k != p)
swap(a[k], a[p]);
b[p] = 1;
p = (p == 0) ? n-1 : p-1; //更新新的最大值下標 }}
void selectcirclesort2(int n) //第乙個最大值位置不變
b[p] = 1;
p = (p == n-1) ? 0 : p+1; //獲取最小值下標
for (i=1; iif (k != p)
swap(a[k], a[p]);
b[p] = 1;
p = (p == n-1) ? 0 : p+1; //更新新的最小值下標 }}
堆排序(公升序排序)
1將陣列初始化為大根堆 2從i length 1 length是陣列長度 開始迴圈直到i 0將a 0 和陣列的最後乙個元素數值交換,使陣列最後乙個元素成為最大值,次大,第三大.依次類推 3在步驟2每次第乙個元素和最後乙個元素交換值的時候,會破壞堆的結構,所以還要加多調整堆結構這一步驟。調整堆 voi...
希爾排序(公升序)
一 思想 設待排序元素共有n個元素,首先取乙個整數gap二 title 插入排序中的希爾排序,依賴於初始序列 description 分別對間隔為gap的gap個子序列進行直接插入排序,不斷縮小gap,直至為 1 剛開始時,gap較大,每個子串行元素較少,排序速度較快 待到排序後期,gap變小,每個...
堆排序(公升序)
1 思想 堆即是一棵完全二叉樹。堆排序的核心是堆調整演算法。首先根據初始輸入資料,利用堆調整演算法shiftdown 形成最大堆 然後,將堆頂元素與堆尾元素交換,縮小堆的範圍並重新調整為最大堆,如此往復。堆排序是一種不穩定的排序演算法。2 堆調整過程 將初始堆調整為最大堆 最大堆定義 每個節點的值都...