/* 程式功能:插入排序法(Insertion Sort):輸入數個數值,並以插入排序法由小至大將數值排序 */
#include <stdio.h> //插入排序法(Insertion Sort)
void main(void) {
int data[50];
int i, j, k, n,temp;
printf("輸入數值的個數: "); /*輸入n */
scanf("%d" ,&n);
printf("\n");
if (n >= 50) {
printf("請輸入小於49的數字\n");
return;
}
for (i = 0; i < n; i++) { /*輸入n個elements */
printf("請輸入數值:");
printf("data[%d]=",i);
scanf("%d", &data[i]);
}
printf("\n");
for (i = 1; i < n; i++) { /* 當 i > n 表示已經做完 n 個資料的排序 */
temp = data[i];
for (j = i - 1; j >= 0 && data[j] > temp; j--) {
data[j+1] = data[j];
}
data[j+1] = temp;
}
printf("\n資料排序後為\n");
for(i=1; i<=n; i++) {
printf("%d ",data[i]);
}
printf("\n");
}
--Back--