博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插入排序及使用二分查找优化
阅读量:5328 次
发布时间:2019-06-14

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

function insertSrot(arr){            if (arr == null || arr.length < 2) {                return arr;            }            var len = arr.length;            var preIndex, current;            for (var i = 1; i < len; i++) {                preIndex = i - 1;                current = arr[i];                while (preIndex >= 0 && arr[preIndex] > current) {                    arr[preIndex + 1] = arr[preIndex];                    preIndex--;                }                arr[preIndex + 1] = current;            }            return arr;        }        function insertSrot1(arr) {            window.count1 = 0;            if (arr == null || arr.length < 2) {                return arr;            }            var len = arr.length;            for (var i = 1; i < len; i++) {                for(var j = i-1;j>=0;j--){                    window.count1++;                    if(arr[j+1]
arr[mid]) { low = mid + 1; } else if (key < arr[mid]) { high = mid - 1; } if (key > arr[mid] && key < arr[mid + 1]) { return mid; }else if(key
arr[high]){ return high; } } }; // console.error(binary_search([2,12], 13)) // console.error(binary_search([2, 12], 1)) // console.error(binary_search([2,12], 12)) console.error(binary_search([2], 1)) // console.error(binary_search([1,2,5,11,12,17,21,29,333,1110,3222],999)) //插入排序优化,即将比较改为二分查找 function insertSrot2(arr) { if (arr == null || arr.length < 2) { return arr; } var len = arr.length; window.count = 0; for (var i = 1; i < len; i++) { let ind = binary_search(arr.slice(0,i),arr[i]); // console.log('ind', ind) // console.log('arr[i]', arr[i]) // console.log('arr', arr.slice(0, i)) let current = arr[i]; for (let j = i-1; j >= ind; j--) { window.count++; arr[j + 1] = arr[j]; } if (ind < 0) { arr[0] = current } else{ arr[ind+1] = current; } } console.log('优化后的计算次数',count) return arr; } let arr1 = [12,2,31,21,245,21,2,4,5,332,788,09,980] let arr2 = [12,2] // console.log(window.insertSrot(arr1)) // console.log(window.insertSrot1(arr1)) // console.log(window.insertSrot2([12,2,31])) console.log(window.insertSrot2(arr1))

 

转载于:https://www.cnblogs.com/qdcnbj/p/11186878.html

你可能感兴趣的文章
[搬运] 写给 C# 开发人员的函数式编程
查看>>
对Python中yield的理解
查看>>
NailTech 公司网站制作思路
查看>>
Shiro权限控制框架
查看>>
java第六次作业
查看>>
vsftpd虚拟用户【公司系统部分享】
查看>>
盒子box在网页中居中的方法
查看>>
Python之旅Day14 JQuery部分
查看>>
二十一、 Memento 备忘录(行为型模式)
查看>>
python 3.X中打包二进制数据存储字符串出错原因分析
查看>>
core--线程池
查看>>
B+树介绍
查看>>
redux-effect
查看>>
Swift和OC混编
查看>>
深度学习文献阅读笔记(6)
查看>>
Android轻量级的开源缓存框架ASimpleCache
查看>>
他山之石:加载图片的一个小问题
查看>>
shell - 常识
查看>>
[PHP] excel 的导入导出
查看>>
docker-containerd 启动流程分析
查看>>