Java选择排序
排序思想:
第一次从arr[0]到arr[n-1]中选取最小值,与arr[0]交换。第二次从arr[1]到arr[n-1]中选取最小值,与arr[1]交换…第i次从arr[i-1]到arr[n-1]中选取最小值,与arr[i-1]交换…第n-1次从arr[n-2]到arr[n-1]中选取最小值,与arr[i-2]交换。总共通过n-1次,得到一个按排序从小到大排列的有序序列。
排序规则:
1、选择排序一共有 数组的大小-1轮排序
2、每轮排序,又是一个循环,循环规则:
(1)先假定当前数是最小值
(2)然后和后面每个数进行比较,如果发现有比当前数更小的数,就重新确定最小的数,并且得到下标
(3)当遍历数组的最后时,就得到本轮最小数和下标
(4)进行交换
代码实现:
public class SelectedSort {
public static void main(String[] args) {
// TODO 自动生成的方法存根
//定义一个测试的排序数组
int[] arr= {3,9,-1,10,-2};
int min=0; //存储最小值的下标
int temp=0; //存储中间变量
int j=0;
for(int i=0;i<arr.length-1;i++) {
min=i; //假设该下标为最小值的下标
j=i;
for(;j<arr.length;j++) {
if(arr[min]>arr[j]) { //选取最小值,得到最小值得下标
min=j;
}
}
//进行交换
temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;
System.out.printf("第%d次排序的结果是: \n",i+1);
System.out.println(Arrays.toString(arr));
}
}
}