C語言選擇排序從小到大,從大到小,詳細註釋
阿新 • • 發佈:2021-02-16
【選擇排序程式如下】
程式修改說明:程式中的 if(b[j] < b[m]) 即是排序方式,< 即從小到大排序,改成 > 即從大到小排序。
#include <stdio.h>
int main()
{
#define LEN 10
int b[LEN];//1,3,2,9,8,7,6,5,4,0
int i, j, m, temp;
printf("請輸入10個整數:");
for( i = 0; i < LEN; i++)
scanf("%d," , &b[i]);
//進行N-1輪選擇,即迴圈LEN-1次互換位置,因為最後一個數據不需要換位置(10個數據,就需要9次即可)
for( i = 0; i < LEN-1; i++)
{
m = i; //從剩下的到LEN-1個數據中選擇最小資料的下標
for( j = i+1; j < LEN; j++) //從剩餘資料中不斷獲取更小的資料
if(b[j] < b[m]) //如果還有更小的資料
m = j; //獲取它的陣列下標(位置)
if (m != i)//資料不一樣才需要互換位置
{
temp = b[i];
b[i] = b[m];
b[m] = temp;
}
}
printf("排序結果:");
for( j = 0; j < LEN; j++)
printf("%d,", b[j]);
printf("\n");
}
【執行結果如下】