版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SIMPLE1995/article/details/86286829
一、解释
插入排序。通俗点讲类似我们打扑克时整理牌。先将0 1位置排好序,然后将2位置元素插入已经排好序的区域,直至全部有序。
二、代码
public static void insertSort(int arr[]){
//初始认为0位置已排定 for确定待排区域
for (int i = 1; i < arr.length; i++) {
//待排数字与它前一个数比较 若待排数字大 则交换 并且指针左移
for (int j = i-1; j>=0&&arr[j]>arr[j+1]; j--) {
Sort_logarithmic_device.swap(arr, j+1, j);
}
}
}
三、时间复杂度分析
数据样本量为n时:
最好情况 最差情况
比较次数 n-1 2+3+4+……+n=(n+2)n/2
移动次数 0 1+2+3+……+n-1=n*n/2
所以时间复杂度为 O(N)