一、原理
步骤:1.找出整个数组中最小的数
2.将最小的数与第一位交换
3.不计第一位,在第一位以后的数组中找出最新的数
4.并与第二位进行交换
5.重复3.4.两个步骤,直到最后一位
二、描述
时间复杂度:O(n2)
空间复杂度: O(1)
三、代码
package com.test.util;
import java.util.Arrays;
public class SortTest {
public static void main(String[] args) {
int[] arr= {2,7,4,1,5,3,8,6,9,11,10,32,443,1,12,424,33,22,665,2};
int[] arr2=sort(arr);
System.out.println(Arrays.toString(arr2));
}
public static int[] sort(int[] arr){
for (int i = 0; i < arr.length - 1; i++) {
int temp;
int index = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[index] > arr[j]) {
index = j;
}
}
temp = arr[index];
arr[index] = arr[i];
arr[i] = temp;
}
return arr;
}
}
四、总结
1.常见的排序有插入排序,选择排序,交换排序。
2.在3种分类排序中最基本的是:直接插入排序,简单选择排序,冒泡排序。
3.而在这3类都有一个改进版的排序算法分别是:希尔排序,堆排序,快速排序。
4.另外还有两个排序也是常见的,分别是归并排序和基数排序