20180321选择排序-简单选择排序

白昼怎懂夜的黑 提交于 2019-11-27 13:59:50

前置知识

  • 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整理,算法比较简单,主要在
    • 稳定不稳定方面,没太理解。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!