Java基础算法-排序-选择排序
简单选择排序:
原理
简单选择排序,把数组分为有序区间与无序区间, 开始所有的数都属于无序区间,然后在无序区间里面找出min/max,然后插入有序区间,挨个轮换下去
时间复杂度
时间复杂度 平均 : O(n^2) 最坏 O(n^2)
代码实现
···java
package cn.zju.algorithms.sort;
public class SelectSort {
public static void main(String[] args) {
int[] arr = {3 , 2 , 1, 10 , 8 , 9 , 1};
selectSort(arr);
for(int num : arr){
System.out.print(num + " ");
}
}
public static void selectSort(int[] arr){
for(int i = 0 ; i < arr.length-1 ; i++){
int minIndex = i;
for( int j = i + 1;j <arr.length ; j++){
if(arr[minIndex] > arr[j])
minIndex = j;
}
swap(arr,i, minIndex);
}
}
public static void swap(int[] arr, int i , int j){
int temp = 0;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
···