码迷,mamicode.com
首页 > 编程语言 > 详细

选择排序

时间:2017-10-08 16:13:58      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:i+1   选择   oid   mes   using   ace   str   stream   排序   

#include<iostream>
using namespace std;
//选择排序
void SeleteSort(int data[],int count)
{
    int min=0;
    int auxiliary=0;
    for(int i=0;i<count;i++)
    {
         min = i;
         for(int j=i+1;j<count;j++)
         {
            if(data[j]<data[min])
                min=j;
         }
         if(i!=min)
         {
            auxiliary=data[i];
            data[i]=data[min];
            data[min]=auxiliary;
         }
    }
}
int main()
{
    int array[]={
        2,3,5,4,2,1,4,7,8,9,0
    };
    SeleteSort(array,11);
    for(int i=0;i<11;i++)
        cout<<array[i]<<endl;
    return 0;
}

 这里是不是还要说下原理:

进行n遍比较,每一趟都找出数值最小的记录与第一个指针交换,第二趟从n-1的记录中找出关键码最小的值与第二个交换,直到整个序列有序排列。

数据移动次数较少,但关键码比较次数是n(n+1)/2,时间复杂度为O(n^2)

选择排序

标签:i+1   选择   oid   mes   using   ace   str   stream   排序   

原文地址:http://www.cnblogs.com/enyala/p/7637508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!