c语言用选择排序法对10个整数进行排序[1,12,4,9,10,22,-7,0,99,8]
时间: 2023-08-24 20:08:27 浏览: 60
好的,我来帮你解答这个问题。下面是用 C 语言实现选择排序算法对给定数组进行排序的代码:
```c
#include <stdio.h>
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;
}
}
temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
int main() {
int arr[] = {1, 12, 4, 9, 10, 22, -7, 0, 99, 8};
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: 1 12 4 9 10 22 -7 0 99 8
Sorted array: -7 0 1 4 8 9 10 12 22 99
```
这里用了一个双重循环来实现选择排序,第一重循环从数组的第一个元素开始,到倒数第二个元素结束。第二重循环从第一重循环的当前元素的下一个元素开始,到数组的最后一个元素结束。在第二重循环中,如果找到比当前元素更小的元素,就将它们的位置交换。这样,每一次外层循环结束后,数组中最小的元素就会被放到正确的位置上。最终,整个数组就被排序了。
阅读全文