首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言實例練習

C語言練習實例37:選擇排序算法實現(10個數)

     編輯:C 語言實例練習

C語言練習實例37:選擇排序算法實現(10個數)

本實例使用選擇排序對 10 個整數從小到大排序。

算法步驟

  • 外層循環 i=0..N-2,假設 a[i] 為最小。
  • 內層循環 j=i+1..N-1 尋找真正最小值下標 min。
  • 若 min != i 交換 a[i] 和 a[min]。

源代碼

// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
#define N 10

int main() {
    int i, j, a[N], temp;
    printf("請輸入 10 個數字:\n");
    for (i = 0; i < N; i++) scanf("%d", &a[i]);
    for (i = 0; i < N-1; i++) {
        int min = i;
        for (j = i+1; j < N; j++)
            if (a[min] > a[j]) min = j;
        if (min != i) {
            temp = a[min];
            a[min] = a[i];
            a[i] = temp;
        }
    }
    printf("排序結果是:\n");
    for (i = 0; i < N; i++) printf("%d ", a[i]);
    printf("\n");
    return 0;
}

運行示例

請輸入 10 個數字:
23 2 27 98 234 1 4 90 88 34
排序結果是:
1 2 4 23 27 34 88 90 98 234

複雜度

時間 O(n²),空間 O(1),不穩定排序。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved