建设工程监理 精品课网站怎么给自己的公司建立网站
选择排序算法是一种比较经典的排序算法,与其类似的冒泡排序算法的思想有点不同,它采用的是选择第一个和后n-1个进行比较,将最小的排在第一个位置,后面的依此方式进行。
一、算法步骤
步骤1:初始化数组arry(假设其长度为n);
步骤2:选择数组的第一元素与后n-1个元素进行比较,挑选最小的元素a1与第一个元素进行替换,将第一位置的元素换成a1,最小元素对应位置换成第一个元素;
步骤3:选择第2个位置的元素与后n-2个元素进行比较,选择最小的元素a2与其进行替换,依此规则选择第n-1个位置的元素与其最后一个元素进行比较;
步骤4:完成步骤3的选择,输出排序后的结果;
二、案例讲解(实例理解)
给出一数组[3,2,1,9,4,6,5],按上述算法步骤进行:
第一次比较:1,2,3,9,4,6,5
第二次比较:1,2,3,9,4,6,5
第三次比较:1,2,3,9,4,6,5
第四次比较:1,2,3,4,9,6,5
第五次比较:1,2,3,4,5,6,9
第六次比较:1,2,3,4,5,6,9
通过上述的案列,可以很清晰的得出排序后的数组,下面通过程序的方式进行展示:
三、程序实现
package algorithm;import java.util.Arrays;public class SelectSort {public static void main(String[] args) {//创建数组int [] array= {3,2,1,9,4,6,5};for(int i=0;i<array.length-1;i++) {int min_index=i;for(int j=i+1;j<array.length;j++) {if(array[j]<array[min_index]) {min_index=j;}}int temp=array[i];array[i]=array[min_index];array[min_index]=temp;System.out.println("第"+(i+1)+"次排序结果:"+Arrays.toString(array));}}
}
在程序中需要注意的点是大家需要导入包Arrays,使用其中的toString方法将其转化才能打印出结果。
四、输出结果:
第1次排序结果:[1, 2, 3, 9, 4, 6, 5]
第2次排序结果:[1, 2, 3, 9, 4, 6, 5]
第3次排序结果:[1, 2, 3, 9, 4, 6, 5]
第4次排序结果:[1, 2, 3, 4, 9, 6, 5]
第5次排序结果:[1, 2, 3, 4, 5, 6, 9]
第6次排序结果:[1, 2, 3, 4, 5, 6, 9]