排序算法之选择排序

描述

选择排序:同属于基本的算法,在冒泡排序的基础之上进行优化的,相比冒泡排序,选择排序是内层循环只做比较,筛选并记录与外层循环相比最小的值与下标,在内层循环结束后,进行一次值替换,此排序比较次数不变,减少值替换次数,相比冒泡排序,性能更高。

原理

遍历给定数组,使用双重循环,外层循环表示查找第n小的值,内层循环比较所有待比较的值,筛选出最小值,每次内循环结束,就将数组中的第n个值与筛选出来的最小值进行替换,直到全部记录排序完毕。

性能

冒泡排序 < 选择排序 < 插入排序

 

package com.yhq.buildspringmvc.data;

import java.util.Arrays;

/**
 * 选择排序
 *
 * @author YuHaiQing
 * @date 2018-04-23 11:53
 */
public class ChoiceSort {

    public static void main(String[] args){

        Integer[] age = {12,5,26,45,9,11,63};

        for(int i = 0; i < age.length; i++){

            Integer variable = age[i];
            int index = i;
            for(int j = i+1; j < age.length; j++){

                if(variable > age[j]){
                    variable = age[j];
                    index = j;
                }
            }
            age[index] = age[i];
            age[i] = variable;
        }
        System.out.println(Arrays.toString(age));
    }
}

 

posted @ 2018-04-23 13:56  余海清  阅读(123)  评论(0编辑  收藏  举报