博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常见排序算法-----二分插入排序
阅读量:4880 次
发布时间:2019-06-11

本文共 895 字,大约阅读时间需要 2 分钟。

// 二分插入排序    // 分类 -------------- 内部比较排序    // 数据结构 ---------- 数组    // 最差时间复杂度 ---- O(n^2)    // 最优时间复杂度 ---- O(nlogn)    // 平均时间复杂度 ---- O(n^2)    // 所需辅助空间 ------ O(1)    // 稳定性 ------------ 稳定    public void insertionSortDichotomySolution(int[] arr) {        // 假设左边从0到i-1都已排好序        for (int i = 1; i < arr.length; i++) {            int current = arr[i];            int left = 0;            int right = i - 1;            int mid = (left + right) >> 1;            while (left <= right) {                if (arr[mid] > current) {                    right = mid - 1;                } else{                    left = mid + 1;                }                 mid = (left + right) >> 1;            }            for (int j = i - 1; j >= left; j--) {                arr[j + 1] = arr[j];            }            arr[left] = current;        }    }

 

转载于:https://www.cnblogs.com/maxbolg/p/9319672.html

你可能感兴趣的文章
linux之shell之if、while、for语句介绍
查看>>
Mysql phpStudy升级Mysql版本,流产了怎么办?
查看>>
SQLServer之数据库行锁
查看>>
OFDM仿真
查看>>
浅谈linux内核中内存分配函数
查看>>
走近SpringBoot
查看>>
python程序之profile分析
查看>>
写在读研初期
查看>>
开环增益对负反馈放大电路的影响
查看>>
MySQL-ERROR 2003
查看>>
SQL Server2012-SSIS的包管理和部署
查看>>
JavaScript内置对象
查看>>
如何把js的循环写成异步的
查看>>
ER图是啥?
查看>>
too many include files depth = 1024错误原因
查看>>
HTTP协议详解(三)
查看>>
Android零基础入门第84节:引入Fragment原来是这么回事
查看>>
解析SQL Server之任务调度
查看>>
参考资料地址
查看>>
08.路由规则中定义参数
查看>>