选择排序法(Selection Sort)是一种简单直观的排序算法,它的基本思想是每次从未排序的元素中选择最小(或最大)的元素,放到已排序的末尾。具体实现如下:
#includevoid 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; } } // 交换最小元素到已排序的末尾 temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]); int i; printf("Original array: "); for (i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); selectionSort(arr, n); printf("Sorted array: "); for (i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; }
运行以上代码,输出为:
Original array: 64 34 25 12 22 11 90 Sorted array: 11 12 22 25 34 64 90