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

选择排序

时间:2017-02-23 00:52:25      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:ram   sel   system   i+1   bsp   ati   rgs   简单选择   复杂   

选择排序和冒泡排序相比.少了一些交换,冒泡排序是发现有小的就换,选择排序和每个元素比较确定最小的菜交换位置

            时间复杂度:O[n2]

            性能优于冒泡排序

            稳定的排序算法

public static void main(String[] args) {
        int[]arr={4,6,3,2,8,6,9};
        selectionSort(arr);
        for(int i:arr){
            System.out.print(i+",");
        }

    }
    /**
     * 简单选择排序
     * 时间复杂度:O[n*n]
     * 交换的次数大大减少,性能略优于冒泡排序
     * @param arr
     */
    public static void selectionSort(int[] arr){
        for(int i=0;i<arr.length-1;i++){
            int min=i;//min存储最小元素的角标
            for(int j=i+1;j<arr.length;j++){
                if(arr[min]>arr[j]){
                    min=j;//发现有比最小元素小的元素时,将此元素的角标存在min中
                }
            }
            if(min!=i){//判断当前arr[i]是否是最小元素,不是的话和最小元素交换位置
                int a=arr[i];
                arr[i]=arr[min];
                arr[min]=a;
            }
        }
    }

选择排序

标签:ram   sel   system   i+1   bsp   ati   rgs   简单选择   复杂   

原文地址:http://www.cnblogs.com/2nao/p/6431460.html

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