1. 程式人生 > 實用技巧 >C程式陣列演算法 — 選擇排序法

C程式陣列演算法 — 選擇排序法

/*  C程式陣列演算法 — 選擇排序法
*   此例子按照 大 -> 小 排序
*   原理:後一個和前一個相比較,若大於/小於 就利用"位置"對調。   
*   比較次數: n(n-1) / 2 次  && 互換次數:n-1 次
*   說明:此演算法適用於數字比較少的排序 && 此方法和冒泡法相似的一批
*   跟著邏輯走  慢慢看
*   時間:2020年7月12日 20:56:07
*/
#include<stdio.h>
int main()
{
    int a[10] = {-2,3,55,66,55,-6,-4,44,28,55
}; int i,j,temp,pos; // i和j表示下標的 , temp用來存放最大(小)值的, pos代表位置 for(i = 0;i<9;i++) //外層迴圈下標為 0—8 { pos = i; //記錄元素位置 temp = a[i]; //設當前元素為最大(小)值 for(j = i+1; j<10;j++)//內層迴圈下標(i+1) — 9 { if(a[j] > temp) // 後一個元素和前一個比較 { pos
= j; //記錄最大(小)值位置 temp = a[j]; //最大值存在temp } } a[pos] = a[i]; //交換 最大(小)值 a[i] = temp; //交換 最大(小)值 } for(i = 0;i<10;i++) { printf("%d\n",a[i]); //排序好了就列印~ } return 0; }

程式碼如上 ↑