选择排序(java实现)
一、选择排序简明介绍(从小到大)
- 选择排序算法思想
选择排序的时间复杂度为O(n2),选择排序是比较不稳定的排序方法。n值越小越稳定。
选择排序就是将一组无序的 int 类型数组进行排序,此次以从小到大排序为例。
核心:
int[] array = {};
核心
第一次从array[1]—array[n-1]中取最小值与array[0]交换
第二次从array[2]—array[n-1]中取最小值与array[1]交换
。。。。。
2. 算法过程
第一趟:数组第一位17与后面数值比较,17>3,3再与后面的值比较3最小,结束比较,3与17交换。
第二趟:数组第二位17与后面之比较,17>9,9与17交换。
第三趟:数组第三位25与后面值比较,25<14,14再与后面比较14最小,结束比较,14与25交换。
。。。。。。。。。
- 动态图
二、代码实现
插入排序 方法实现
public static void selectSort(int[] array){
for (int i = 0; i < array.length-1; i++) {
int minIndex = i;
int min = array[i];
for (int j = i+1; j < array.length; j++) {
if (min>array[j]){
min=array[j];
minIndex=j;
}
}
if (minIndex!=i){
array[minIndex] = array[i];
array[i]=min;
}
}
}
测试
public static void main(String[] args) {
int[] array={
3,9,-1,10,20,30,45,22,-6,-12};
System.out.println("排序前");
System.out.println(Arrays.toString(array));
selectSort(array);
System.out.println("排序后");
System.out.println(Arrays.toString(array));
}
测试结果