用C语言解答“用选择法对10个整数排列”
时间: 2024-12-17 15:28:57 浏览: 1
在C语言中,选择法通常用于生成随机排列的一种算法,例如著名的“快速排序”或“库克排序”的选择版,这里我们以简单的选择排序为例,来展示如何对10个整数进行排列:
```c
#include <stdio.h>
#include <stdlib.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int random_number(int arr[], int size) {
return arr[rand() % size];
}
void selection_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
// 找到未排序部分中的最小元素
int min_idx = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
// 将找到的最小元素放到已排序部分的末尾
swap(&arr[i], &arr[min_idx]);
}
}
int main() {
int numbers[10];
// 初始化数组
for (int i = 0; i < 10; i++) {
numbers[i] = i + 1; // 示例用0~9的数字
}
printf("Original array: ");
for (int i = 0; i < 10; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
selection_sort(numbers, 10);
printf("Sorted array: ");
for (int i = 0; i < 10; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
```
这个程序首先初始化了一个包含10个整数的数组,然后通过`selection_sort`函数进行排序。注意,这只是一个简单的选择排序示例,并不是真正的“选择法”,因为选择法在这里指的可能是更高级的随机化算法如“轮盘赌选择法”等。
阅读全文