当前位置: 首页 > news >正文

网站开发周期安排wordpress部署到sae

网站开发周期安排,wordpress部署到sae,品牌设计作品集,成都市建设厅官方网站一、是什么 在计算机科学中#xff0c;二分查找算法#xff0c;也称折半搜索算法#xff0c;是一种在有序数组中查找某一特定元素的搜索算法 想要应用二分查找法#xff0c;则这一堆数应有如下特性#xff1a; 存储在数组中有序排序 搜索过程从数组的中间元素开始二分查找算法也称折半搜索算法是一种在有序数组中查找某一特定元素的搜索算法 想要应用二分查找法则这一堆数应有如下特性 存储在数组中有序排序 搜索过程从数组的中间元素开始如果中间元素正好是要查找的元素则搜索过程结束 如果某一特定元素大于或者小于中间元素则在数组大于或小于中间元素的那一半中查找而且跟开始一样从中间元素开始比较如果在某一步骤数组为空则代表找不到这种搜索算法每一次比较都使搜索范围缩小一半。 相比普通的顺序查找除了数据量很少的情况下二分查找会比顺序查找更快。 二、如何实现 基于二分查找的实现如果数据是有序的并且不存在重复项实现代码如下 function BinarySearch(arr, target) {if (arr.length 1) return -1// 低位下标let lowIndex 0// 高位下标let highIndex arr.length - 1while (lowIndex highIndex) {// 中间下标const midIndex Math.floor((lowIndex highIndex) / 2)if (target arr[midIndex]) {highIndex midIndex - 1} else if (target arr[midIndex]) {lowIndex midIndex 1} else {// target arr[midIndex]return midIndex}}return -1 } 如果数组中存在重复项而我们需要找出第一个制定的值实现则如下 function BinarySearchFirst(arr, target) {if (arr.length 1) return -1// 低位下标let lowIndex 0// 高位下标let highIndex arr.length - 1while (lowIndex highIndex) {// 中间下标const midIndex Math.floor((lowIndex highIndex) / 2)if (target arr[midIndex]) {highIndex midIndex - 1} else if (target arr[midIndex]) {lowIndex midIndex 1} else {// 当 target 与 arr[midIndex] 相等的时候如果 midIndex 为0或者前一个数比 target 小那么就找到了第一个等于给定值的元素直接返回if (midIndex 0 || arr[midIndex - 1] target) return midIndex// 否则高位下标为中间下标减1继续查找highIndex midIndex - 1}}return -1 } 实际上除了有序的数组可以使用还有一种特殊的数组可以应用那就是轮转后的有序数组 有序数组即一个有序数字以某一个数为轴将其之前的所有数都轮转到数组的末尾所得 例如[4, 5, 6, 7, 0, 1, 2]就是一个轮转后的有序数组 该数组的特性是存在一个分界点用来分界两个有序数组如下 分界点有如下特性 分界点元素 第一个元素分界点元素 第一个元素 代码实现如下 function search (nums, target) {// 如果为空或者是空数组的情况if (nums null || !nums.length) {return -1;}// 搜索区间是前闭后闭let begin 0,end nums.length - 1;while (begin end) {// 下面这样写是考虑大数情况下避免溢出let mid begin ((end - begin) 1);if (nums[mid] target) {return mid;}// 如果左边是有序的if (nums[begin] nums[mid]) {//同时target在[ nums[begin],nums[mid] ]中那么就在这段有序区间查找if (nums[begin] target target nums[mid]) {end mid - 1;} else {//否则去反方向查找begin mid 1;}//如果右侧是有序的} else {//同时target在[ nums[mid],nums[end] ]中那么就在这段有序区间查找if (nums[mid] target target nums[end]) {begin mid 1;} else {end mid - 1;}}}return -1; }; 对比普通的二分查找法为了确定目标数会落在二分后的哪个部分我们需要更多的判定条件。 三、应用场景 二分查找法的O(logn)让它成为十分高效的算法。不过它的缺陷却也是比较明显就在它的限定之上 有序我们很难保证我们的数组都是有序的数组数组读取效率是O(1)可是它的插入和删除某个元素的效率却是O(n)并且数组的存储是需要连续的内存空间不适合大数据的情况 关于二分查找的应用场景主要如下 不适合数据量太小的数列数列太小直接顺序遍历说不定更快也更简单每次元素与元素的比较是比较耗时的这个比较操作耗时占整个遍历算法时间的大部分那么使用二分查找就能有效减少元素比较的次数不适合数据量太大的数列二分查找作用的数据结构是顺序表也就是数组数组是需要连续的内存空间的系统并不一定有这么大的连续内存空间可以使用
http://www.hkea.cn/news/14319594/

相关文章:

  • 专业网络公司报价专业seo网站优化推广排名教程
  • 微网站什么意思视频网站建站程序
  • 微网站开发需求文档互联网上市公司一览表
  • 免费信息推广网站数商云官网
  • 欧美模板网站建设网络营销推广的核心是哪三种方式
  • 网站文章编辑器代码列举电子商务网站建设需要的语言
  • 地方旅游网站建设必要性wordpress放视频
  • 国税政务公开网站建设竞争对手 网站流量
  • 从手机上可以做网站吗开发公司移交给物业资料说明
  • 旅游网站管理系统php那些网站是用python做的
  • 重庆做网站最好的软件定制开发 报价
  • 门户网站推广优势郑州机械网站建设
  • 河南专业网站建设公司推荐培训机构网站
  • 网络组建考试题优化大师网页版
  • 手机怎么做淘客网站外贸 网站 源码
  • 做企业网站需要准备什么材料卖货小程序
  • 权威网站发布平台手机域名免费注册
  • 站长工具是干嘛的网站信息建设总结
  • 网站建设成都哪家公司好网站的留言怎么做
  • 莘县聊城做网站wordpress 前台不显示内容
  • 网站建设与管理实训课程移动互联网开发人才网
  • 制作网站的模板下载深圳光明新区网站建设
  • 做美食网站有哪些长沙建网站速成班
  • 武城网站建设wordpress获取qq头像评论
  • 网站开发需要redis网站的规划和建设方案
  • 免费h5模板网站网站开发好什么进行界面的优化
  • iis网站目录权限网站做不做双解析
  • 建材网站建设公司电子商务毕业设计 网站建设
  • 网站建设保障方案十大软件下载软件大全
  • 一家企业如何做网站推广网络科技有限公司英文