直接选择排序
来源:互联网 发布:三星s7检查网络连接 编辑:程序博客网 时间:2024/06/16 17:44
3.选择排序
时间复杂度:O(n^2),不稳定。
思想: 初始情况:有序空间为空,无序空间为整个待排空间。
过程: 每次从无序空间取出一个最小值和无序空间第一个元素进行交换,然后缩小无序区间,直到无序区间只剩一个元素
void select_sort(int *array, int length)
{int i = 0;
int j = 0;
int min_index = -1;
int temp = 0;
for(i = 0; i < length - 1; ++i){
min_index = i;
for(j = i + 1; j < length; ++j){
//找出序列中最小值下标
if(array[j] < array[min_index]){
min_index = j;
}
}
if(min_index != i){ //序列第一个值就是最小值,不交换
temp = array[i];
array[i] = array[min_index];
array[min_index] = temp;
}
}
// min_index = i
//15 2 14 5 7
//i j array[j] < array[min_index]
// min_index = j;
//
//2 15 14 5 7
// i j
}
0 0
- 选择排序-直接选择
- 【排序】直接选择排序
- 【排序】直接选择排序
- 【排序】直接选择排序
- 选择排序--直接选择排序
- 选择排序 - 直接选择排序
- 选择排序-直接选择排序
- 选择排序-直接选择排序
- 直接选择排序
- 直接选择排序
- 直接选择排序
- Java 直接选择排序
- 直接选择排序举例
- 直接选择排序
- 直接选择排序算法
- 直接选择排序
- 直接选择排序
- 直接选择排序
- Python面向对象高级编程——学习笔记
- Scala进阶源码实战之八——隐式转换和隐式参数
- hdu 1619 Unidirectional TSP【记忆化dp】
- GitHub源代码管理基本操作
- 两人结队练习时的感受
- 直接选择排序
- angularjs初入
- 特征选择方法总结
- java学习笔记(3)多态
- Docker学习笔记
- python numpy使用
- Unity 常用宏
- 多线程下单例模式的正确写法
- 运用正则做简单的表单验证