选择排序

原创 2012年03月25日 02:18:14

选择排序(select sort):每一趟在n-i+1个记录中选择关键字最小的记录作为序列中的第i个记录。

必须有记录:33  21  45  67  15  24

第一趟结果:15  21  45  67  33  24     //第一趟,选择出最小的数15将第一个数33和15交换位置

第二趟结果:15  21  45  67  33  24     //第二趟,由于最小的数就是21本身,不用改变位置,下面的以此类推

第三趟结果:15  21  24  67  33  45

第四趟结果:15  21  24  33  67  45

第五趟结果:15  21  24  33  45  67

选择排序的实际复杂度为O(n^2)

C++实现代码:

//选择排序 gavin 2012-3-25
void mySelectSort(int* arr, int len)
{
    for (int i = 0; i < len - 1; i++) //扫描的次数
    {
        int mmin = arr[i]; //初始化当前选择的最小值
        int mminloc = i;  //初始化当前最小值的位子
        for (int j=i+1; j< len;j++)  //循环查找从i到len-1的记录中最小的一个,以及最小值的位子
        {
            if (arr[j] < mmin)
            {
                mmin = arr[j];
                mminloc = j;
            }
        }
        if (mminloc != i)
        {
            int temp = arr[i];
            arr[i] = arr[mminloc];
            arr[mminloc] = temp;
        }
    }
}

八大排序算法之选择排序

选择排序—简单选择排序(Simple Selection Sort)
  • ye_scofield
  • ye_scofield
  • 2014年09月16日 10:10
  • 8655

排序算法六:选择排序之直接选择排序

排序算法六:选择排序声明:引用请注明出处http://blog.csdn.net/lg1259156776/引言在我的博文《“主宰世界”的10种算法短评》中给出的首个算法就是高效的排序算法。本文将对排...
  • LG1259156776
  • LG1259156776
  • 2015年09月26日 10:24
  • 2842

【排序算法】选择排序(C++实现)

选择排序算法就是每一趟从待排序的记录中选出关键字最小(最大)的记录,顺序放在已排好序的子文件的最后(最前),直到全部记录排序完毕。常见的选择排序有直接选择排序(Selection Sort),堆排序(...
  • left_la
  • left_la
  • 2013年03月10日 16:01
  • 15363

排序算法(四)选择排序及优化版本

选择排序,是通过每次选择最小的数或者最大的数,然后将它放在它应该出现的位置上。 具体实现过程:将0号下标的数据保存,在之后的数中选择一个最小的数,如果最小的数不是0号数,则将最小的数与0号下标的数进...
  • peiyao456
  • peiyao456
  • 2016年11月20日 13:40
  • 2205

经典排序算法之简单选择排序

前面在介绍冒泡排序的时候,有提到一种简单排序算法,就是从0开始,每次确定一个位置的元素。假设当前需要确定的位置下标为 i,则将i处的元素与后面的元素逐个比较,并将每次比较结果中较小的元素存放在i处,...
  • hulifangjiayou
  • hulifangjiayou
  • 2015年08月06日 19:19
  • 6024

老生常谈——选择排序和插入排序

所谓的排序就是将一组对象按照某种逻辑顺序重新排列的过程.在研究排序算法时,我们需要考虑排序的成本: 需要计算比较和交换的次数.对于不交换元素的算法需要计算访问数组的次数....
  • dd864140130
  • dd864140130
  • 2016年03月10日 13:43
  • 1317

java中冒泡排序与选择排序的区别

初学java语言,排序算法绝对是我们拿来实践的好例子。而在排序中有两种简单的算法是绕不开的,就是冒泡排序与选择排序。下面来分别讲解: 冒泡算法:假设数组长度为lenght,冒泡算法的外循环为leng...
  • tiantianhuanle
  • tiantianhuanle
  • 2016年10月15日 21:27
  • 5349

选择排序(汇编实现)

刚学汇编,于是用汇编编写了选择排序算法,初学真是各种心累啊。 (选择排序思想即为每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。) DATA SEGM...
  • u013519226
  • u013519226
  • 2016年05月03日 22:35
  • 938

数据结构与算法之排序算法---简单选择排序

数据结构与算法之排序算法—简单选择排序 简单选择排序的基本思想 完整实现代码 复杂度分析 2016年10月18日15:54:57 by:piaxiaohui简单排序的基本思想...
  • u010548437
  • u010548437
  • 2016年10月18日 16:28
  • 974

冒泡排序和选择排序法的图示解析

思路:在进行冒泡法排序(升序)时,需要将数组元素(len)两两比较,如果 前面的元素大于后面的元素,则交换两个数,否则,比较下一个元素和它的下一个元素的大小,依次执行,执行一次循环,可以找到当前...
  • qq_34992845
  • qq_34992845
  • 2016年11月22日 00:25
  • 1443
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:选择排序
举报原因:
原因补充:

(最多只允许输入30个字)