1、思想
通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
2.特点
适用于少量数据的排序,是稳定的排序方法
3.算法时间复杂度
O(n2)
4、代码
public int[] sort (int[] sourcearry) {
//将参数里的数组复制到新声明的一个数组中
int[] arr = Arrays.copyOf(sourcearry, sourcearry.length);
//从下标为1的元素开始选择合适的位置插入,因为下标为0的只有一个元素,默认是有序的
for(int i = 1;i<arr.length;i++) {
//记录要插入的数据arr[i]
int temp = arr[i];
//从已经排序的序列最右边的开始比较,找到不比其大的数
int j = i;
while(j>0&&temp<arr[j-1]) {
arr[j] = arr[j-1];
j--;
}
//插入
arr[j] = temp;
}
return arr;
}