对一维数组中的元素采用选择排序的方法自小至大进行排序C语言
时间: 2024-09-14 10:03:22 浏览: 39
选择排序是一种简单的排序算法。它的工作原理如下:首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
下面是使用C语言对一维数组中的元素采用选择排序的方法进行自小至大的排序的示例代码:
```c
#include <stdio.h>
// 选择排序函数
void selectionSort(int arr[], int len) {
int i, j, min_index, temp;
for (i = 0; i < len - 1; i++) {
// 假设最小值的位置为当前未排序部分的第一个元素位置
min_index = i;
// 从剩余未排序的元素中寻找最小值的位置
for (j = i + 1; j < len; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
// 如果找到的最小值位置不是当前位置,则交换
if (min_index != i) {
temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
}
// 打印数组函数
void printArray(int arr[], int len) {
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
// 主函数
int main() {
int arr[] = {64, 25, 12, 22, 11};
int len = sizeof(arr) / sizeof(arr[0]);
printf("Original array: \n");
printArray(arr, len);
selectionSort(arr, len);
printf("Sorted array in ascending order: \n");
printArray(arr, len);
return 0;
}
```
在这个例子中,`selectionSort` 函数负责进行排序操作,它接受一个数组和数组的长度作为参数。`printArray` 函数用于打印数组的内容。在 `main` 函数中,我们创建了一个待排序的数组,并在排序前后调用 `printArray` 函数来显示数组的状态。
阅读全文