首页 > 编程语言 > 详细

排序算法之选择排序

时间:2015-10-22 14:24:28      阅读:237      评论:0      收藏:0      [点我收藏+]

选择排序

 

1.选择排序算法的原理

a) 第一轮,设第一个位置为起始位置,将每一次将无序序列中最小的元素移动到最起始的位置

b) 第二轮,设置第二个位置为起始位置,将第二个后面的无序序列中最小的元素移动到第二轮的起始位置;重复以上操作,直到排序完成

2.实现代码

#include <stdio.h>
 
int select_sort(int *a,int n)
{
        int i,j,temp,min;
        for(i=0;i<n;i++){   
                min=i; //先假设第i个位置为这一轮的最小值a[min]
                for(j=i+1;j<n;j++){ 
//从第i+1个位置开始的每个值与a[min]比大小,找到无序区最小的那个数,并将序号记录下来即a[min],然后交换a[i]与a[min].
                        if(a[min]>a[j]){
                                min=j;
                        }
  }
                  if(min!=i){
                          temp=a[min];
                          a[min]=a[i];
                          a[i]=temp;
                   } 
        } 
        return 0;
}
int main()
{   
        int i;
        int a[9]={14,2,6,7,1,3,5,1,7};
 
        select_sort(a,9);
        for(i=0;i<9;i++){
                printf("%d\n",a[i]);
        }
        return 0;
 
}


3.时间复杂度(O(N^2)


排序算法之选择排序

原文:http://jachy.blog.51cto.com/10625380/1705142

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!