先选择最低索引值0与后面数值一一比较,若遇到比最低索引值小的数值,两者互换位置,再将数值较小的与后面的数值比较,诺遇到比该数值小的继续换位置,直到第一轮比较结束,将最小值放到最左端;后面也是如此一一比较;
原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。
public class ChoosePermotation {
public static void main(String[] args) {
int[] arr= {13,6,1,79,66,89,15,};
System.out.println("数组遍历:");
arrae1(arr);
System.out.println("选择排序:");
arrae(arr);
arrae1(arr);
}
//对数组进行遍历
private static void arrae1(int[] arr) {
System.out.print("[");
for(int i=0;i<arr.length;i++) {
if(i==arr.length) {
System.out.print(arr[i]);
}else {
System.out.print(arr[i]+",");
}
}
System.out.println("]");
}
//对数组进行选择排序
private static void arrae(int[] arr) {
for (int i= 0; i< arr.length; i++) {//比较次数
for(int j=i+1;j<arr.length;j++) { //数值比较
if(arr[j]<arr[i]) {
int temp=arr[i]; //互换位置
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
}