//选择排序
//基本思想:
//在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换
//第二次遍历n-2个数,找到最小的数值与第二个元素交换,
//...
//第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。
//平均时间复杂度为:O(n^2)
public class SelectionSort {
public static void main(String[] args) {
int[] arr = new int[]{6,2,4,1,9,3,6,7,0};
System.out.println("排序前=====");
print(arr);
System.out.println("");
System.out.println("排序后");
int[] result = selectionSort(arr);
print(result);
}
public static int[] selectionSort(int[] arr){
int temp = 0;
for(int i=0; i<arr.length-1; i++){
int minIndex = i;
for(int j=i+1; j<arr.length; j++){
if(arr[j]<arr[minIndex]){
minIndex = j;
}
}
if(minIndex!=i){
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
return arr;
}
public static void print(int[] arr){
for(int i=0; i<arr.length; i++){
System.out.print(arr[i]+",");
}
}
}
网友评论