博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Algorithm] Search element in a circular sorted array
阅读量:4703 次
发布时间:2019-06-09

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

function findInCircularlySortedAry (ary = [], target) {  if (ary && ary.length === 0) {    return -1;  }    if (ary.length === 1) {      return ary[0] === target ? 0 : -1;  }    let low = 0,      high = ary.length - 1;    while(low <= high) {    let mid = Math.floor((low + high) / 2);    // case 1: target === middle item, return found    if (ary[mid] === target) {       return mid;    }    // To find which parts (left or right) is sorted    // case 2: if middle < high, mean from middle to high is sorted    if (ary[mid] < ary[high]) {       if (target > ary[mid] && target <= ary[high]) {           low = mid + 1;       } else {         high = mid - 1;       }    }     // case 3: if low < middle, mean from low to middle is sorted    else {      if (target >= ary[low] && target < ary[mid]) {        high = mid -1;      } else {        low = mid + 1;      }    }   }    return -1;}const data = [12,14,18,21,3,6,8,9];const res = findInCircularlySortedAry(data,18); // 2console.log(res);

We don't need to 

转载于:https://www.cnblogs.com/Answer1215/p/10597821.html

你可能感兴趣的文章
C++字符串相关函数
查看>>
ElasticSearch(十一)Elasticsearch清空指定Index/Type数据
查看>>
(转)Django ====> 实战学习篇三 MODEL之外需要知道的
查看>>
记录一个在制作Swing程序的小怪事
查看>>
Another MySQL daemon already running with the same unix socket的解决
查看>>
VUE基于ElementUI搭建的简易单页后台
查看>>
C#如何运行外部程序(打开可执行程序):ShellExcute和Process
查看>>
xc_domain_save.c
查看>>
仿易讯clientloading效果
查看>>
怎样查看Eclipse是32位还是64位?
查看>>
SpringBoot集成JWT实现token验证
查看>>
xml文件格式说明
查看>>
聊聊Java的final关键字
查看>>
TP支持菜单动态生成RBAC权限系统数据库结构设计方案
查看>>
Visitor
查看>>
水电费管理题目
查看>>
POJ-2533 Longest Ordered Subsequence
查看>>
方法的传值和使用
查看>>
js- (JS正则表达式验证数字)
查看>>
Crontab 删除N天前日志
查看>>