C1任务04-计算机程序逻辑
2021/8/1 17:35:59
本文主要是介绍C1任务04-计算机程序逻辑,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
任务一和扩展:参考这篇 C1任务04
参考了上面这篇之后,发现最后一题有一个小bug,于是修改得到如下
var array = [8, 7, 12, 1,5, 0, 6, 9, 2]; var key = 6; //假设要查找的是6 array.sort((a, b) => { return a - b; }); //js中的sort写回调函数,不然就是按照字符编码来比大小了 var result = binarySearch(array, key); if (-1 === result) { console.log("未查找到" + key); } else { console.log("查找到" + key + "在array排序后索引位置为:" + result); } //函数二分查找,找到返回索引,未找到返回-1 function binarySearch(array, key) { var index = -1; var start = 0; var end = array.length - 1; var middle = Math.floor((end + start) / 2); while (start !== end) { if (key < array[middle]) { end = middle - 1; middle = Math.floor((end + start) / 2); continue } if (key > array[middle]) { start = middle + 1; if (key === array[middle + 1]) { return middle + 1 } middle = Math.floor((end + start) / 2); continue } if (key === array[middle]) { return middle; } } return index; }
输出效果:
这篇关于C1任务04-计算机程序逻辑的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享