C語言兩大排序演算法
阿新 • • 發佈:2018-12-10
在C語言中,氣泡排序和選擇排序兩大演算法是非常重要的。今天小編就在這分享這兩大演算法的原始碼,希望初學者一定要熟練掌握。
#include<stdio.h>//氣泡排序;
int main(){
int a[6];
int i, j, t;
printf("請輸入六個數字\n");
for (i = 0; i < 6; i++){//給陣列賦值;
scanf("%d", &a[i]);
}
for (j = 0; j < 6 - 1; j++){//排序開始;
for (i = 0; i < 6 - 1 - j; i++){
if (a[i] < a[i + 1]){//交換數值;
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
}
}
for (j = 0; j< 6;j++){//列印排序後的順序;
printf(" %d", a[j]);
}
return 0;
}
#include<stdio.h>//選擇排序演算法;
int main(){
int a[6];
int i, j, t, max;
printf("請輸入六個數字!\n");
for (i = 0; i < 6; i++){//給陣列賦值;
scanf("%d", &a[i]);
}
for (j = 0; j < 6 - 1; j++){//排序開始;
max = a[j];//假定最大值;
t = j;假定最大值下標;
for (i = j + 1; i < 6; i++){
if (max < a[i]){//比較大小;
max = a[i];//記錄最大值和最大值下標;
t = i;
}
}
a[t] = a[j];//交換數值,將最大值放在陣列的第一位;
a[j] = max;
}
for (i = 0; i < 6; i++){//列印排序後的陣列;
printf(" %d", a[i]);
}
return 0;
}
希望我這兩段原始碼能夠幫到初學C的朋友,也希望你們能多多練習,加以靈活運用。