陣列排序(交換法與選擇法)

2021-08-09 15:55:28 字數 731 閱讀 3131

交換法對陣列陣列進行排序的基本思路 就是先讓陣列(n個數)中的最左邊的乙個數(用i=0代表)與其右邊的每乙個數(從j=i+1開始)依次(j++)進行比較,若遇到比其大的數(score[j]>score[i]),則將較大的那個數的值賦給自己,自己成為較大數繼續與後面的數比較,以此類推,一輪後(即j=n時),讓i自增1,重複上述迴圈直至i=n-1.

下面以乙個有5個數的陣列演示交換法排序:

#include 

void main()

; int n=5;

for (i=0;i<=n-1;i++)

}

}for(i=0;i<=n-1;i++)

}

選擇法基本思路與交換法大致相似,不同點是交換法在一輪中要比較交換多次,而選擇法是一輪中比較多次,而最多交換一次。選擇法也是從i=0開始比較,遇到較大的數(score[j]>score[k](k在一開始是等於i的))則交換下標,最後若k 不等於i,則score[k]與score[i]交換位置。

同樣以上述的陣列用選擇法來排序:

#include 

void main()

; int n=5;

for (i=0;i<=n-1;i++)

}if (k!=i)

}for(i=0;i<=n-1;i++)

}

選擇法建立在交換法之上,但因交換次數較少,故效率較高

C語言 交換法排序

交換法排序 題目內容 從鍵盤輸入n個 n 10 整數,用交換法進行排序 非遞減有序 結果輸出排序後的序列。說明 交換法排序用函式實現,函式原型為 void sort int a,int n 交換法排序的基本思想是 n個元素共需要n 1趟,其中第i 從0變化至n 2 趟的任務是找出本趟中最小的元素放在...

挖坑法 指標交換法實現快速排序

參考資料 同氣泡排序一樣,快速排序也是交換排序,但是採用了分治的思想,所以效率比氣泡排序高很多 氣泡排序每一輪都找出最大的元素到數列的一端 而快排挑選乙個基準元素,將比基準元素大移動到數列一端,比基準元素小的移動到另一端,將數列分成兩部分 下面幾種實現,推薦指標交換法 雙邊指標 容易理解 平均時間複...

「序列數交換法」與加密

用 序列數交換法 可以產生真隨機數,但真隨機數用於加密檔案並不好用,用它們做金鑰需要保管和傳 遞等特殊關照,所以我們需要密碼學意義上的真隨機數就可以了,也就是對想破解的人是真的。現在籌畫序列數加密 隨機加密 這裡的加密方法是需要密碼的,密碼由使用者輸入。序列數由 序列數交 換法 產生,經處理後作為金...