需要特殊数组(线性场)的算法

2024-03-09

我有一个数组(线性场) 与预先排序的数字

 [1, 2, 3, 4, 5, 6],

但这些数组向右移动(k次),

now its

[5,6,1,2,3,4], k = 2

但我不知道k。只有数组A。

现在我需要一个算法来找到 A 中的最大值(运行时间 O(logn))

我认为它是二分搜索的东西,任何人都可以帮助我吗?


这个问题可以用寻找“不连续点”来重新表述,即6, 1阵列中的点。您可以使用类似于二分查找 http://en.wikipedia.org/wiki/Binary_search_algorithm, 像这样:

取一个数组A和两个索引,low and high,初始设置为0 and A.Length-1。不连续点位于low and high.

Divide (low, high)一半。调用中点mid。比较A[low] to A[mid] and A[mid] to A[high]。如果只有一对正确排序,则调整端点:如果是low-mid已订购的对,分配low = mid,否则赋值high = mid。如果两个区间都已排序,则答案为A[high].

这运行在O(LogN)因为每一步都会将问题的规模缩小一半。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要特殊数组(线性场)的算法 的相关文章

  • O(mn) 比 O((m+n)^2) 更好吗?

    算法的输入是m and n 我的算法的时间复杂度是O mn 我有一个时间复杂度为的基准算法O m n 我的实现在时间复杂度方面是否优于基准 许多评论者和回答者希望只考虑以下情况 m n或者至少当它们通过一个常数因子相关时 这不是它的工作原理
  • 为无向无权图实现推重标签算法 s-t 最小割边

    我正在寻找一个好的解决方案来在无向和未加权图中找到 s t 最小切割边 我想使用推送重新标记算法 但我不确定如何实现它以在无向和未加权图上找到最小割 在每对顶点之间有两条反向边 并在所有边上赋予相同的权重 并应用推送重新标记算法 我可以用这
  • 我想优化这个短循环

    我想优化这个简单的循环 unsigned int i while j 0 j is an unsigned int with a start value of about N 36 000 000 float sub 0 i 1 unsig
  • 如何设置K-means openCV c++的初始中心

    我正在尝试使用 OpenCv 和 Kmeans 对图像进行分割 我刚刚实现的代码如下 include opencv2 objdetect objdetect hpp include opencv2 highgui highgui hpp i
  • 交换两个向量之间的值,使两个向量的 max_element 之和最小

    这是 Codechef 的问题 但请耐心等待 https www codechef com ZCOPRAC problems ZCO16001 https www codechef com ZCOPRAC problems ZCO16001
  • 应用程序启动时立即隐藏导航栏

    基于以下代码片段 我能够隐藏状态栏当应用程序启动时 但不是导航栏 由后退 主页和任务管理器按钮组成的栏 因为它隐藏了稍后在 MainActivity 的线程完成加载后 这是清单
  • 如何在Scala中实现尾递归快速排序

    我写了一个递归版本 def quickSort T xs List T p T T gt Boolean List T xs match case Nil gt Nil case gt val x xs head val left righ
  • 加密成本高,解密成本低

    我希望该用户 攻击者加密数据并发送给服务器 现在我想要一种与标准算法完全相反的算法 使用快 难以解密 即很难使用服务器发送的密钥来加密密码等数据 以防止随机攻击 但很容易解密这样服务器在验证用户时消耗的时间非常少 但是对于攻击者来说 每次使
  • Java:如何实现3和?

    我正在研究 3 Sum 来自己实现它 并遇到了以下规则的实现 给定一个由 n 个整数组成的数组 S S 中是否存在满足 a b c 0 的元素 a b c 查找数组中所有总和为零的唯一三元组 注意 三元组 a b c 中的元素必须按非降序排
  • 搜索/排序算法 - 是否有类似 GoF 的列表?

    我是一名自学成才的开发人员 坦率地说 我不太擅长找出在任何特定情况下使用哪种搜索或排序算法 我只是想知道是否有设计模式 esque 列出了以太坊中可用的常见算法 供我添加书签 就像是 算法名称 带有别名 如果有的话 它解决的问题 大O成本
  • Python 给定 k 个分区的整数分区

    我正在尝试寻找或开发Python 的整数分区代码 仅供参考 整数分区将给定整数 n 表示为小于 n 的整数之和 例如 整数5可以表示为4 1 3 2 3 1 1 2 2 1 2 1 1 1 1 1 1 1 1 我为此找到了许多解决方案 ht
  • 如何高效地在屏幕上精确绘制N个点?

    这听起来是一个简单的问题 但我发现要获得良好的性能是非常棘手的 我提出的第一个算法是随机绘制点 从一组中检查是否已绘制 否则绘制 如果我们只绘制几个点 那么这种方法效果很好 但当我们接近填满屏幕时 速度会灾难性地减慢 我想出的最好的方法是构
  • 快速求解子集和

    考虑这种解决子集和问题的方法 def subset summing to zero activities subsets 0 for activity cost in activities iteritems old subsets sub
  • 使用主方法求解 T(n) = 2T(n/2) + n/log n 和 T(n) = 4T(n/2) + n/log n 之间的差异

    我最近偶然发现了一个资源 其中 2T n 2 n log ntypeMM 宣布复发无法解决 我接受它作为一个引理 直到今天 另一种资源被证明是矛盾的 在某种意义上 根据资源 下面的链接 其中的 Q7 和 Q18 是建议 分别在问题中的1和2
  • 通过分布式数据库聚合作业优化网络带宽

    我有一个分布式 联合数据库 结构如下 数据库分布在三个地理位置 节点 每个节点集群有多个数据库 关系数据库是 PostgreSQL MySQL Oracle 和 MS SQL Server 的混合体 非关系数据库是 MongoDB 或 Ca
  • 如何将无向图转换为 DAG?

    The 维基页面 http en wikipedia org wiki Directed acyclic graph Relation to other kinds of graphs says 任何无向图都可以通过为其顶点选择总顺序并将每
  • Java - Runtime.getRuntime().exec() 发生了什么?

    我在 Java 中遇到 Runtime exec 问题 我的代码 String lol home pc example txt String b touch lol try Runtime getRuntime exec b catch E
  • 如何将一组重叠范围划分为不重叠范围?

    假设您有一组范围 0 100 一 0 75 b 95 150 c 120 130 d 显然 这些范围在某些点上重叠 您将如何剖析这些范围以生成不重叠范围的列表 同时保留与其原始范围相关的信息 在本例中为范围后面的字母 例如 运行算法后的上述
  • Karasuba算法递归过多

    我正在尝试用 c 实现 Karasuba 乘法算法 但现在我只是想让它在 python 中工作 这是我的代码 def mult x y b m if max x y lt b return x y bm pow b m x0 x bm x1
  • 带 If 的嵌套 For 循环的时间复杂度

    void f int n for int i 1 i lt n i if i int sqrt n 0 for int k 0 k lt pow i 3 k do something 我的思考过程 执行if语句的次数 sum i 1 to

随机推荐

  • 我应该将哪个会话库与 CodeIgniter 一起使用?

    我最近开始使用 CI 及其 CI 会话 但我注意到 使用 CI 会话比使用基本 PHP 会话特别耗时得多 Arrays 我有一组数据 无论登录 注销如何 它都会持续存在 称为 SESSION stats 然后我以以下形式将数据存储在该数组中
  • 如何禁用 RabbitMQ 默认 tcp 监听端口 - 5672

    我已经配置了RabbitMQrabbitmq config具有新端口号的文件 即带有 SSL 的 5671 现在我想禁用默认端口 即 5672 配置文件如下 rabbit ssl listeners 5671 ssl options cac
  • C++ 相当于指定初始化器?

    最近我一直在研究一些嵌入式设备 其中我们有一些结构体和联合体需要在编译时初始化 以便我们可以将某些不需要修改的东西保留在闪存或ROM中 并节省一点闪存或 SRAM 但会牺牲一点性能 目前 该代码编译为有效的 C99 但如果没有这种调整 它也
  • Prolog 中的条件编写

    I have Prolog包含飞机时刻表的数据库 它看起来是这样的 fly id from to days 1 0 1 0 1 0 1 正如你所看到的 有 7 个值days谓词 从星期一到星期日 我想做的是每天打印 价值所在1 但将其打印为
  • Win32:Watson 博士的完整/迷你转储和我自己编写的转储之间有区别吗?

    我有一个应用程序在发布版本中偶尔会崩溃 不幸的是 看起来它在第 3 方 DLL 中崩溃了 在试图掌握它的过程中 我一直在如何操作和 Windows 如何创建故障转储的描述的海洋中游泳 我正在考虑使用这个建议的小型转储 获取启动时崩溃的进程的
  • 具有相同擦除的两种方法不需要覆盖等效(或者它们的签名不是它们之间的子签名)?

    我正在阅读关于 jdk6 的令人难以置信的书 java scjp 认证程序员指南 其中有一个关于泛型覆盖的部分 它描述了子签名和覆盖等效项 并描述了我引用的一些覆盖等效项的示例 给定类中的以下三个泛型方法声明 static
  • 无法保存 applicationHost.config 文件

    我无法保存 applicationHost config 文件 当我停止 IIS 服务并关闭 Visual Studio 时 它显示 保存失败 它在另一个程序中打开 知道吗 如果您使用 64 位架构并尝试使用 32 位编辑器 例如 Note
  • 将背景图像添加到各个片段

    我有一个应用程序有多个fragments我想知道如何添加每个不同的背景fragment 我使用的布局有可滚动选项卡 它们都使用相同的 xml 文件 我也有一个MainActivity设置视图和adapter对于每个fragment 我知道你
  • 将 ActiveRecord 验证错误转换为 API 可使用错误

    我正在 Rails 4 中编写一个非常标准的 CRUD RESTful API 不过 我在错误处理方面有所欠缺 假设我有以下模型 class Book lt ActiveRecord Base validates title presenc
  • 将 Kinect ColorImageFrame 转换为位图

    我将 Kinect Microsoft SDK 与 XNA 结合使用 我想使用 GRATF 进行标记识别 如何转换 Kinect 的数据ColorImageFrame to a System Drawing Bitmap or AForge
  • 使用 python (win32com.client) 将图像插入到 powerpoint 幻灯片中

    我的任务是在幻灯片中插入数百张图像并调整其大小 我需要使用与我们公司使用的其他幻灯片类似的特定源格式 我一直在使用活跃的 python win32com API 并且已经弄清楚如何打开文件并创建空白幻灯片 我的问题是我将如何插入图像并将其大
  • Fancybox 包装器无法根据图像尺寸正确自动调整大小

    我在使用 FancyBox 时遇到问题 它应该根据图像的尺寸自动调整包装器的大小 它不是这样做的 具体来说就是太小了 这是我使用的 FancyBox jQuery 代码 a rel photo gallery fancybox type i
  • 在QGraphicsView的ScrollHandDrag模式下,如何停止场景中QGraphicsItems的移动?

    我有多个QGraphicsItem场景中的内容分布在场景的不同部分 在应用程序中 有不同的模式 其中一种模式用户可以滚动场景 手掌拖动模式 为了实现场景I的滚动set dragMode of QGraphicsView to ScrollH
  • 无法识别已安装的项目特定的 nuget 包

    我有一个 Web 项目 由于 nuget 错误而无法构建 我们有许多网站都使用名为 Sitecore 的网络 CMS 我们不同的网站在不同的版本下运行 因此 我们有一个针对多个版本的通用库如此处所述 https stackoverflow
  • 本地图像在 React-Native 应用程序发布版本中不可见

    在我的反应本机应用程序中我有 src http postimg org image ak6w7cbk3 文件夹 其中包括Images文件夹和屏幕文件夹 Myscreens文件夹有各种成分我在哪里使用本地图像Images使用以下代码
  • 如何使用表单身份验证将用户重定向到密码恢复页面

    我是 asp net 的初学者 我目前有一个登录页面 屏幕底部有一个忘记密码链接按钮 我还使用表单身份验证来防止未经授权的用户访问其他页面 除了一件事之外 身份验证似乎工作正常 一旦用户单击链接按钮 它就会阻止用户访问密码恢复页面 如何允许
  • 可变数量的参数而不装箱值类型?

    public void DoSomething params object args 上述签名的问题在于 传递给该方法的每个值类型都将被隐式装箱 这对我来说是严重的性能问题 有没有办法声明一个接受可变数量参数而不装箱值类型的方法 Thank
  • jQuery 中的输入与 :Input

    我想知道为什么人们似乎更喜欢 input over input作为 jQuery 选择器 基本上 这两行似乎做了同样的事情 input first focus input first focus 但第二个版本使用更广泛 我不明白为什么 此外
  • 第三方脚本可以设置第一方 cookie 吗?

    我在网上阅读了很多有关 cookie 的内容 但没有解决这个问题 假设我在 a com 上有一台服务器 而 b com 提供的网页在我的服务器上的该网页中嵌入了一个脚本 该脚本在设置 cookie 方面可以做什么 它可以设置一个cookie
  • 需要特殊数组(线性场)的算法

    我有一个数组 线性场 与预先排序的数字 1 2 3 4 5 6 但这些数组向右移动 k次 now its 5 6 1 2 3 4 k 2 但我不知道k 只有数组A 现在我需要一个算法来找到 A 中的最大值 运行时间 O logn 我认为它是