排序算法之选择排序
描述
选择排序:同属于基本的算法,在冒泡排序的基础之上进行优化的,相比冒泡排序,选择排序是内层循环只做比较,筛选并记录与外层循环相比最小的值与下标,在内层循环结束后,进行一次值替换,此排序比较次数不变,减少值替换次数,相比冒泡排序,性能更高。
原理
遍历给定数组,使用双重循环,外层循环表示查找第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)); } }