package com.algo; /**选择排序 * 要点: * 1.改进了冒泡排序,将必要的交换次数由O(N square )减少到O(N)但比较次数依然是O(N square) * 也就是说,比较次数不变,但是减少了做交换的时间 * 2.选择排序和冒泡不同的是,将序列中最小的数往左边移动。从而左边的是有序的 5,2,8,6,7,3 四个数, * 第一次比较后: 2,5,8,6,7,3 (2是有序的) * 第二次比较后:2,3,8,6,7,5(2,3是有序的) * 第三次比较后:2,3,5,8,6,7 (2,3,5是有序的) * 第四次比较后:2,3,5,6,8,7 (2,3,5,6是有序的) * 第五次比较后:2,3,5,6,7,8 * @author Beacher.Ma */ public class SelectorSortTest { public static void main(String[] args) { int ram[]={5,2,8,6,7,3}; for(int i=0;i<ram.length;i++){ int min=ram[i]; for(int j=i+1;j<ram.length;j++){ if(ram[j]<min){ //减少了这一段代码运行的时间 ram[i]=ram[j]; ram[j]=min; min=ram[i]; } } } for(int i:ram){ System.out.print(i+" "); } } }