简单选择排序c 语言详解
时间: 2024-11-23 21:28:45 浏览: 15
简单选择排序(Selection Sort)是一种简单的整数排序算法。它的工作原理分为两个阶段:
1. **查找最小元素**:首先,在未排序序列中找到最小的元素,将其放在已排序序列的末尾。这一步通过遍历整个序列完成,每次遍历时找到当前未排序部分中的最小值。
2. **逐步排序**:然后,对剩余的未排序元素重复第一步操作,每次将剩下的最小元素放到已排序部分的末尾。这个过程会持续到所有元素都被处理过,整个序列就按升序排列了。
以下是C语言实现简单选择排序的一个基本示例:
```c
#include <stdio.h>
void selectionSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
// 初始化最低元素索引为i
int minIndex = i;
// 寻找从i到n-1范围内的最小元素
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j; // 更新最小元素索引
}
}
// 将找到的最小元素与未排序部分的第一个元素交换位置
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
// 测试函数
int main() {
int data[] = {9, 5, 6, 8, 1};
int size = sizeof(data) / sizeof(data[0]);
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", data[i]);
}
selectionSort(data, size);
printf("\nSorted array: ");
for (int i = 0; i < size; i++) {
printf("%d ", data[i]);
}
return 0;
}
```
运行此程序会输出排序后的数组。
阅读全文