选择排序

算法描述:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。


算法分析:
平均时间复杂度:O( N2 )
空间复杂度:O(1) (用于交换和记录索引)
稳定性:不稳定


算法实现:

void Select_Sort(int *array,int length)
{
    assert(array && (length>0))
    int i = 0;
    int j,tmp;
    int minPos;
    for (; i < length-1; ++i)
    {
        minPos = i;
        for (j = i+1; j < length; ++j)
        {
            if(*(array+j) < *(array+minPos))
                minPos = j;
        }

        tmp = *(array+minPos);
        *(array+minPos) = *(array+i);
        *(array+i) = tmp;
    }
    return ;
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、基本思想 每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一...
    Sopphire阅读 1,348评论 0 0
  • 一、简介 选择排序法第一次扫描会找出最大或者最小值,放到正确的位置;第二次扫描会在剩余数据找出最大或者最小值,放到...
    野狗子嗷嗷嗷阅读 4,260评论 0 0
  • 版本记录 前言 将数据结构和算法比作计算机的基石毫不为过,追求程序的高效是每一个软件工程师的梦想。下面就是我对算法...
    刀客传奇阅读 783评论 0 2
  • 相遇,始于机缘,却无不是一场阴差阳错碰撞出的美丽巧合,只是命运提前写好了开始。 世间所有相遇都是久别重逢,似乎冥冥...
    六尘影阅读 1,562评论 0 5
  • 工欲善其事,必先利其器。 想要学好一门语言,第一步并非熟悉语法,而是要有一个舒服的环境。Python不仅能在win...
    _Joeyoung_阅读 305评论 0 2