平均时间复杂度:O(n2)
空间复杂度:O(1) (用于记录需要插入的数据)
稳定性:稳定
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
Integer[] arr = {3, 5, 2, 8, 9, 10};
arr = Test.sort(arr);
System.out.println( Arrays.toString(arr) );
}
//插入排序法
public static Integer[] sort(Integer[] arr){
for( int j = 1; j < arr.length; j ++ )
{
Integer key = arr[j];//存储当前的值
int i = j - 1;//当前值的前一个下标
while( i >= 0 && arr[i] > key )//如果下标大于0,并且大于当前值
{
arr[i + 1] = arr[i];//将i下标所在值转移到下一个位置,为当前值让位置
i = i - 1;//继续往前比较
}
arr[i + 1] = key;//i+1下标的值循环中已经转移到下一个位置了
}
return arr;
}
}