选择排序两种写法_c语言 选择排序2种写法 📊💡
在编程的世界里,选择排序是一种简单直观的排序算法,它的工作原理是从未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。下面,让我们通过两种不同的方法来实现选择排序吧!👇
第一种方法:经典选择排序
```c
void selectionSort(int arr[], int n) {
int i, j, min_idx;
for (i = 0; i < n - 1; i++) {
min_idx = i;
for (j = i + 1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
int temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}
```
第二种方法:优化版选择排序
```c
void optimizedSelectionSort(int arr[], int n) {
int i, j, min_idx, max_idx;
for (i = 0; i < n / 2; i++) {
min_idx = max_idx = i;
for (j = i + 1; j < n - i; j++) {
if (arr[j] < arr[min_idx])
min_idx = j;
else if (arr[j] > arr[max_idx])
max_idx = j;
}
int temp = arr[min_idx];
arr[min_idx] = arr[n - 1 - i];
arr[n - 1 - i] = temp;
if (max_idx == n - 1 - i)
max_idx = min_idx;
temp = arr[max_idx];
arr[max_idx] = arr[i];
arr[i] = temp;
}
}
```
这两种方法各有千秋,经典选择排序易于理解,而优化版选择排序则在某些情况下能够减少交换次数,提高效率。希望这些代码能帮助你在C语言的学习之路上更进一步!🚀📚
选择排序 C语言 编程技巧
免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。