Binary search with addition and subtraction

这篇博客记录了学习Algorithms 4th的过程,讨论了如何在不允许比较操作的情况下,仅使用加减法进行二分查找。在给定一个有序数组和一个整数目标值的情况下,要求程序的运行时间在最坏情况下与log N成正比。文章介绍了这种方法的解决方案,并提到了StackOverflow上关于斐波那契搜索与二分搜索效率的讨论。
摘要由CSDN通过智能技术生成

最近在学习Algorithms 4th, 做个记录

题目

Binary search with only addition and subtraction. [Mihai Patrascu] Write a program that, given an array of N distinct int values in ascending order, determines whether a given integer is in the array. You may use only additions and subtractions and a constant amount of extra memory. The running time of your program should be proportional to log N in the worst case.
仅用加减实现的二分查找。编写一个程序给定一个含有N个不同int值并按照升序排序的数组,判断是否有给定的整数,只能用加法和减法以及额外的内存,程序运行时间在最坏情况下应该和logN成正比

解决方法

package day1;

import edu.princeton.cs.algs4.*;

import java.util.Arrays;
import java.util.HashSet;

public class Mihai_Patrascu {
   

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] arr = getArr(20000);
        StdOut.println();
        Arrays.sort(arr); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值