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

选择排序

时间:2015-02-09 21:29:53      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

算法步骤:
1. 未排序序列中找到最小元素,存放到排序序列的起始位置
2. 再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾
3. 以此类推,直到所有元素均排序完毕
比较复杂度:n(n-1)/2
交换(赋值)复杂度:n-1
优点:相比冒泡排序来讲,交换的次数减少了
缺点:相对快速排序,比较次数仍然是n2

public static void selectionSort(Integer[] array){
        for(int i=0;i<array.length-1;i++){
            //最小数存放位置
            int minPosition = i;
            for(int j=i+1;j<array.length;j++){
                if(array[j]<array[minPosition]){
                    //新的最小数位置
                    minPosition = j;
                }
            }
            //找到剩余元素中的最小数,并将其交换至起始位置
            swap(array, i, minPosition);
        }
        
    }
public static void swap(Object[] array,int a,int b){
        Object temp = array[a];
        array[a] = array[b];
        array[b] = temp;
    }

选择排序

标签:

原文地址:http://www.cnblogs.com/tangyanbo/p/4282337.html

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