算法思想:对于给定的一组数据,经过第一轮比较后得到最小的数据,然后将该数据的位置与第一个数据的位置交换;接着对第一个数据以外的其他数据进行第二次比较,得到最小数据并与第二个位置数据交换;重复该过程,直到进行比较的数据只剩下一个为止。
代码实现:
package object;
public class XuanSort {
public static void main(String[] args) {
int [] a=new int[]{5,10,3,6,4,8,9,7,1,2};
System.out.println("排序前:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
System.out.println("\n"+"排序后:");
paixu(a);
}
//选择排序
public static void paixu(int [] arr){
int index;//最小值下标
for (int i = 0; i < arr.length; i++) {
index=i;
for(int j=arr.length-1;j>i;j--){ //找出每一轮的最小值的下标
if(arr[j]<arr[index]){
index=j;
}
}
if(index!=i){ //将最小值的互换到每轮比较的第一个数组元素
int temp=arr[index];
arr[index]=arr[i];
arr[i]=temp;
}
}
for (int s = 0; s < arr.length; s++) {
System.out.print(arr[s]+" ");
}
}
}