算法之路_3、插入排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 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)

猜你喜欢

转载自blog.csdn.net/SIMPLE1995/article/details/86286829
今日推荐