迴圈公升序排序

2021-09-05 01:35:29 字數 627 閱讀 3601

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 堆調整過程 將初始堆調整為最大堆 最大堆定義 每個節點的值都...