//选择排序
public class SelectSort {
public static void main(String[] args) {
int[] arr = {3,2,5,9,7,4,6,3};
//打印排序前
print_array(arr);
select_sort(arr);
//打印排序后
print_array(arr);
}
//打印数组
public static void print_array(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
}
//排序
public static void select_sort(int[] arr){
if(arr==null || arr.length<2){
return;
}
//数组长度
int n=arr.length;
for(int i=0;i<n;i++){
//设置每轮循环的最小值的下标为i
int mixValueIndex=i;
for(int j=i+1;j<n;j++){
//找出最小值下标
mixValueIndex=arr[j]<arr[mixValueIndex]?j:mixValueIndex;
//如果预设的最小值下标的值不是最小值,那么比较后得到最小值下标的值和预设最小值小标交换位置
swap_location(arr,i,mixValueIndex);
}
}
}
//交换位置
private static void swap_location(int[] arr, int i, int j) {
int temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
03-20
1106
10-27
1189
10-26
7759
09-18
1206