前置知识
- selection sort
- 选择排序的基本思想:从待排序的序列中选出最大值(最小值),交换该元素与待排序序列头部元素,直到所有待排序的数据元素排序完毕为止。
- 可以复习下直接插入排序
本期内容
名词解释
- 简单选择排序将待排序序列视为两部分
- 一部分是:有序序列,为空。
- 另一部分是:待排序数列,整个序列。
- 核心操作在于最值的选择。
实现
- 时间复杂度O(n*n),双层for循环
- 不稳定的算法
void SelectSort(int arr[],int n)
{
int i, j,max;
for(i=1;i<n;i++)
{
max = i;// 定义当前下标为最小值下标
for(j=1;j<n;j++) //查找最大值,并记录其下标
{
if(arr[max] < arr[j])
max = j;
}
// 若i不等于max,说明找到最大值,进行交换
if(i!=max)
{
swap(&arr[i],&arr[max]);
}
}
}
总体评价
- 比较好理解的算法
代码学习
履历
- 20180321整理,算法比较简单,主要在
- 稳定不稳定方面,没太理解。
来源:oschina
链接:https://my.oschina.net/u/111698/blog/1648804