直接选择排序法:
第一步,选定一个临时元素作为指定排序位置
第二步,将临时指定元素与其他数组元素进行对比,如果满足条件,就交换元素值。这样子一轮下来会得到一个最大或最小的元素值
第三步,然后将该元素值放到最后,依次类推
具体实现如下
public class SelectSort {
public static void main(String[] args) {
int arr[]=new int[] {61,12,65,4,2,15};
SelectSort sorter=new SelectSort();
sorter.sort(arr);
}
//直接排序方法
private void sort(int[] arr) {
int index;
//一共需要查找的次数是arr.length-1
for(int i=1;i<arr.length;i++) {
//将临时变量的下标定为从0开始,即数组的第一个数
index=0;
//将临时变量与数组中其他元素都比较一次
for(int j=1;j<=arr.length-i;j++) {
//当有比临时变量大的数时,就将其设置为临时变量,这样遍历一次可以得到最大的数值
if(arr[j]>arr[index]) {
index=j;
}
}
//每次将最大的数值放到最后,第二大的数值放到倒数第二位
int temp=arr[arr.length-i];
arr[arr.length-i]=arr[index];
arr[index]=temp;
}
showArray(arr);
}
private void showArray(int[] arr) {
for(int i=0;i<arr.length;i++) {
System.out.println(arr[i]);
}
}
}