C程式設計——選擇排序
阿新 • • 發佈:2018-12-21
1、程式檔案
#include <stdio.h> // 兩兩交換 void mySwap(int *a, int i, int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } // 選擇排序 void mySort(int *a, int len) { int i; int j; // 遍歷 for (i = 0; i < len - 1; i++) { // 作下標 int min = i; for (j = i+1; j < len; j++) { // 存放當前最小值 if (a[min] > a[j]) { min = j; } } // 如果當前i指向的值就是最小值,則不用交換 if (min != i) { // 把最小值存放到i的位置 mySwap(a, min, i); } } } // 列印 void myPrint(int *a, int len) { int i; for (i = 0; i < len; i++) { printf ("%4d", a[i]); } printf ("\n"); } // 主函式 int main() { int a[] = {9,8,7,6,5,4,3,2,1,0}; int len; len = sizeof(a)/sizeof(a[0]); mySort(a, len); myPrint(a, len); return 0; }
2、測試結果
[email protected]:/mnt/hgfs/shared-lj# gcc 選擇排序.c
[email protected]:/mnt/hgfs/shared-lj# ./a.out
0 1 2 3 4 5 6 7 8 9