1. 程式人生 > 其它 >實現簡單排序

實現簡單排序

技術標籤:c語言

實現簡單排序

輸入:

程式輸入10個以空格分隔的整數(1~1000)

輸出:

輸出為一行,包括排序後的 1010 個輸入整數,每兩個整數之間有一個空格,最後一個整數後面沒有空格

(1) 氣泡排序
#include <stdio.h>
int main() {
    int n = 10;
    //int m;
    int numbers[10];
    int i;
    int swapped=0;
    int j;
    // 讀入給定的數字
    for (i = 0; i < n; i++) {
        scanf("%d"
, &numbers[i]); } //氣泡排序,第一輪比較只能確保最後的數字在正確的位置,所以需要n輪比較 for(j=0;j<n;j++){ for(i=0;i<n-1-j;i++){ if(numbers[i]<numbers[i+1]){ int temp; temp=numbers[i]; numbers[i]=numbers[i+1]; numbers[i+1]=temp;
} } } //輸出排序後的序列 for(j=0;j<n;j++){ printf("%d",numbers[j]); if(j!=9){ printf(" "); } } return 0; }
(2) 選擇排序
#include <stdio.h>
int main() {
    int n = 10;
    int max;//記錄最大值
    int numbers[
10]; int i; int temp=0; int j; // 讀入給定的數字 for (i = 0; i < n; i++) { scanf("%d", &numbers[i]); } for(i=0;i<n-1;i++) { max=i; for(j=i+1;j<n;j++) { if(numbers[j]>numbers[max]) max=j; //這裡是區分氣泡排序與選擇排序 } if(max!=j) { temp=numbers[i]; numbers[i]=numbers[max]; numbers[max]=temp; } } for(j=0;j<n;j++){ printf("%d",numbers[j]); if(j!=9){ printf(" "); } } return 0; }