文章目录
- [1 . 前言](#1 . 前言)
- [2 . 选择原理](#2 . 选择原理)
- [3 . 代码实现](#3 . 代码实现)
- [4 . 时间复杂度](#4 . 时间复杂度)
- [5 . 总结](#5 . 总结)
【全文大纲】 : https://blog.csdn.net/Engineer_LU/article/details/135149485
1 . 前言
数据整理过程中经常需要把数据排序,这篇文章主要详解选择排序
2 . 选择原理
- 选择排序与冒泡排序很像,选择排序每一趟找到最小值(最大值也可以)
- 一趟中找到最小值后,按从小到大顺序放到前排
- 重复第二步,直至遍历完成
3 . 代码实现
c
// 选择排序函数
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[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
4 . 时间复杂度
O ( n 2 ) O(n²) O(n2)
5 . 总结
选择排序适合用在数据量不多的场景,这个算法不需要借助过多的栈内存来完成,对系统的消耗多数体现在时间上的消耗,若是追求稳定性,对时间复杂度要求不高,这个算法是推荐的,谢谢观看。
技术交流群 : 745662457
群内专注 - 问题答疑,技术研究