选择排序(Selection Sort)是一种简单直观的排序算法,其算法原理为首先在未排序的序列中找到最小(大)的元素,存放到排序序列的起始位置,然后再从剩余未排序的元素中继续寻找最小(大)的元素,存放到已排序序列的末尾,以此类推,直到所有元素均排序完成。
选择排序一共有“数组数-1”轮排序,每一轮排序又是一个循环,循环的规则如下:
1)先假定当前这轮循环的第一个数是最小数。
2)然后和后面每个数进行比较,如果发现有比当前数更小的数,则重新确定最小数,并得到下标。
3)当遍历到数组的最后时,就得到本轮最小的数。
4)和当前循环的第一个数进行交换。
例如:
importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arr=newint[]{19,26,8,35,41,77};for(inti=0;i<arr.length-1;i++){//每次循环都会找出最小的数intminIndex=i;//记录最小数的下标intminNum=arr[i];//记录最小数for(intj=i+1;j<arr.length;j++){//每次循环都会找出最小的数if(arr[j]<minNum){//如果当前数比最小数小,则更新最小数minNum=arr[j];//更新最小数minIndex=j;//更新最小数的下标}}arr[minIndex]=arr[i];//将最小数放到最前面arr[i]=minNum;//将标志位放到最小数原来所在的位置}for(inti=0;i<arr.length;i++){System.out.println(arr[i]);}}}
运行结果如下:
81926354177