C 练习实例37 - 排序

C 语言经典100例 C 语言经典100例

题目:对10个数进行排序。

程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。

实例

#include <stdio.h> #define N 10 void selectionSort(int arr[], int n) { int i, j, minIndex, temp; for (i = 0; i < n - 1; i++) { minIndex = i; for (j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } if (minIndex != i) { // Swap the elements temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } } int main() { int arr[N]; printf("请输入 %d 个数字:\n", N); for (int i = 0; i < N; i++) { scanf("%d", &arr[i]); } selectionSort(arr, N); printf("排序结果是:\n"); for (int i = 0; i < N; i++) { printf("%d ", arr[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 

C 语言经典100例 C 语言经典100例