`
hedahai119
  • 浏览: 106351 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

ruby版二分查找

阅读更多

def sortArr(arr)
  1.upto(arr.length-1) do |i|  
    (arr.length-i).times do |j|  
      if arr[j] > arr[j+1]  
        arr[j],arr[j+1] = arr[j+1],arr[j]  
      end  
    end  
  end  
  return arr  
end

def getIndex(arr,num,s=0,e=arr.size)
  
   if s > e
    return -1
  elsif s == e
    return arr[s] == num ? s : -1
  end
  
  cIndex = 0
  current = 0
  if (e +1 - s)  % 2 == 0
    cIndex = (s+e)/2
    current =  arr[cIndex]
  else
    cIndex = (s+e)/2+1
    current =  arr[cIndex]
  end
  
  if current == num
    return arr.index(current)
  else
    if current > num
      return getIndex(arr,num,s,(cIndex-1))
    else
      return getIndex(arr,num,(cIndex+1),e)
    end
  end
  
end 

number = 9
arr = [1,4,5,7,9,2,4,6,8,0,4,10]
index = getIndex(sortArr(arr),number)
puts "#{number} 在数组中的索引 => #{index}" 
 
分享到:
评论

相关推荐

    Ruby实现二分搜索(二分查找)算法的简单示例

    二分搜索,又称二分查找,是...这个简单的Ruby实现展示了如何利用二分查找算法在已排序的数组中高效地查找目标值。在实际应用中,二分查找通常与其他数据结构(如平衡二叉搜索树)结合使用,以实现更复杂的数据操作。

    ruby写的几个小算法

    在`search.rb`文件中,可能包含线性搜索、二分搜索、哈希查找等: 1. **线性搜索**(Linear Search):最基础的搜索方法,从头到尾遍历数组,直到找到目标元素或遍历结束。最坏情况下的时间复杂度是O(n)。 2. **二...

    Ruby-gitautobisectFindthecommitthatbrokemaster

    《Ruby-Git自动二分查找:定位破坏主分支的提交》 在软件开发过程中,有时候我们会遇到这样的情况:代码在某个未知的提交之后突然出现了问题,这时候就需要快速定位到是哪个提交导致的问题。Ruby社区为Git提供了一...

    Ruby-编程基础阅读物主要是Ruby示例

    Ruby可以用来实现各种算法,如排序算法(冒泡排序、快速排序、归并排序)、查找算法(二分查找、广度优先搜索、深度优先搜索)等。熟悉算法能够帮助优化代码性能。 7. **Ruby开发-其它杂项**:这个标签可能涵盖了...

    Ruby算法和数据结构。C扩展_Ruby_C_下载.zip

    2. **查找算法**:例如线性查找、二分查找、哈希查找,用于在数据集中寻找特定元素。 3. **图算法**:如深度优先搜索(DFS)、广度优先搜索(BFS)、最小生成树(Prim或Kruskal)、最短路径算法(Dijkstra或Floyd-...

    rubyinstaller-2.6.1-1-x64.exe

    `Symbol#to_proc`现在可以与`Array#bsearch`一起使用,进行二分查找;另外,Ruby 2.6还增强了垃圾回收机制,提高了内存管理效率。 安装完成后,用户可以通过命令行(如cmd或PowerShell)输入`ruby -v` 来检查Ruby...

    Ruby袖珍参考手册

    《Ruby袖珍参考手册》是一本旨在帮助Ruby开发者快速查找所需知识点的手册。无论你是通过Rails框架接触Ruby,还是因为Ruby是一种干净、强大且表达力丰富的语言而对它产生兴趣,《Ruby袖珍参考手册》都能提供你需要的...

    Ruby-TorS一个命令行的torrent搜索应用

    3. **数据结构与算法**:搜索结果通常需要进行排序、过滤,这涉及到数据结构(如数组、哈希)和算法(如快速排序、二分查找)的运用。 4. **文本处理**:CLI工具通常涉及大量的文本输出,Ruby的`String`类提供了丰富...

    数据比较小程序(Ruby)

    5. **差异计算**:核心功能可能是找出两个数据集之间的差异,这可能通过迭代两个数据集并进行逐项比较来实现,或者使用更复杂的算法,比如快速排序或二分查找,来提高效率。 6. **用户界面**:尽管这是一个小程序,...

    leetcode-ruby:Ruby中的LeetCode问题

    6. **算法与数据结构**:LeetCode问题通常涉及经典的算法和数据结构,如排序(快速排序、归并排序等)、搜索(二分查找等)、栈、队列、链表、树等。了解并能灵活运用这些概念是解决问题的关键。 7. **Ruby标准库**...

    leetcode答案-ruby_leetcode:ruby_leetcode

    Programming),或是二分查找(Binary Search),或是回溯(Back tracing),或是分治法(Divide and Conquer),还有大量的对 树,数组、链表、字符串 和 hash 的操作。通过做这些题能让你对这些最基础的算法的思路...

    binary_search:Ruby中的二进制搜索

    在Ruby编程语言中,虽然标准库没有直接提供内置的二分查找方法,但开发者可以通过自定义函数轻松实现这一功能。以下是对二进制搜索算法及其在Ruby中的应用进行的详细解释。 二进制搜索的基本思想是通过不断地将搜索...

    流行数据结构和算法的实现_Erlang_Ruby_下载.zip

    对于算法,Erlang支持排序、搜索、图遍历等经典算法的实现,例如快速排序、二分查找、深度优先搜索和广度优先搜索。理解Erlang中的数据结构和算法有助于开发者更高效地编写并发代码。 Ruby,面向对象编程语言,以其...

    ruby-algorithmic-strategies

    2. 搜索算法:线性搜索、二分搜索和哈希查找是常见的搜索策略。Ruby中的`index`和`find_index`方法体现了线性和二分搜索的思想。 3. 动态规划:通过将复杂问题分解为子问题,动态规划在解决最优化问题时尤为有效。...

    一个用Python、Ruby和其他编程语言实现算法简介(Cormen、Leiserson、Rivest和Stein)中的.zip

    在压缩包中的Python代码,可能包括排序算法(如冒泡排序、插入排序、选择排序、快速排序、归并排序)、搜索算法(如二分查找、广度优先搜索、深度优先搜索)、图算法(如Dijkstra最短路径算法、Floyd-Warshall所有对...

    lrucacheleetcode-ruby-algorithms:ruby-算法

    综上所述,这个项目涉及了多种数据结构和算法,包括LRU缓存的实现、堆、双端队列、图形算法、二分查找、快速排序以及与LeetCode相关的编程挑战。通过研究这个开源项目,开发者可以加深对这些概念的理解,并提升编程...

    atcoder-ruby:Ruby中AtCoder问题的解决方案

    Ruby的`sort`方法可以对数组进行快速排序,而二分查找(binary search)则是高效查找的关键技术。熟悉这些算法并在Ruby中实现它们,是提高解题能力的重要步骤。 6. **数学与算法** Ruby提供了数学库,包含各种数学...

    ruby_data_structures:Ruby中的数据结构和算法实践

    - 线性搜索、二分搜索、哈希查找等搜索算法也是基础编程技能。 九、递归与迭代 Ruby支持递归函数和迭代器,可以用于解决复杂问题,如计算阶乘、遍历树形结构等。 十、图(Graph) 虽然Ruby标准库没有内置图数据...

Global site tag (gtag.js) - Google Analytics