算法 —— 选择排序

    原理: 选择排序和直接插入排序有些类似。都是有一个有序序列和无序序列。
               区别在于: 选择排序是将无序区的最小值放到有序区的最后,插入排序则是将无序区的第一个值插入到有序区间当中。
 
1、假设整个数组的大小为n,从a[0 ~ i - 1]为有序区间,a[i ~ n-1 ]为无序区间
2、比较a[i ~ n-1]的所有元素,找出最小的元素,将其与a[i]交换,这样在a[0 ~ i]之间就形成了有序区间。
3、i++,重复第二步,直到 i = n - 1

代码:
               int i,j;
   
int m = n;
   
for (i = 0; i < n - 1 ; i ++) {
        m = i;
       
for (j = i + 1 ; j < n  ; j ++) {
           
if (a[m] > a[j]) {
                m = j;
            }
        }
       
       
if (m != i ) {
           
int temp = a[m];
            a[m] = a[i];
            a[i] = temp;
        }
    }
阅读更多
个人分类: 算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭