一:数组和哈希表的区别
哈希表是通过 元素关键码 的值 直接查找 元素存储位置的 数据结构数组是通过 下标 可以直接访问到 下标对应位置上元素的 数据结构哈希表: 元素的关键码 通过 散射函数 映射 得到的函数值 就是 哈希表数组的下标(一般的哈希表组织元素的方法还是数组)数组只能通过下标迅速访问,但是这个下标与数组里存的元素值没什么关系;哈希表 通过散射函数 建立了 数组元素关键码的值 与 下标的关系 ; 是数组的加强版;所以;哈希表可以 直接访问到 元素关键码 对应的 元素 上去;(相当于由 关键码 通过 散射函数的映射 直接找到了 这个元素 在 哈希表 中的 下标)。但是由于散射函数的作用,元素不能占满整个哈希表,哈希表不是每一个位置都有元素的;综上述:哈希表:优点:直接访问到关键码值对应的元素(数据);缺点占用空间很大;数组:优点:结构紧凑;缺点:不能直接访问到关键码值所对应的元素(数据);
二:写一个递归
好像没有专门的符号,要求阶乘,需要定义一个递归的方法,如N!
def fact(n)
if n == 0
1
else
n * fact(n-1)
end end
三:
用ruby实现二分法,在已知数组中查找特定的值。
Def search(a,b)
if(a.length==0) return -1;
Startpos=0
Endpost=a.length-1
M=(startPos+endPos)/2;
while(Startpos<=Endpost) do
If a[m]>b
endPos=m-1
Elsif a[m]<b
Startpos=m+1
Else
Return j
End
M=(startPos+endPos)/2;
End
A=[2,3,4,6,7,8,9,10,12] #已知数组
J=7 #特定值
p search(A,J)
方法2:
/*
功能: 实现数组的二分法查找(只算法只适合按从小到大排列的数组)
返回值:关键字在数组中的下标, 返回-1表示未找到
a[]: 要搜索的数组
len: 数组元素个数
key: 要查找的关键字
*/
intbinSearch(inta[],intlen,intkey)
{
inti = len / 2;
intii = 0;
if(len < 1)
return-1;
if((key > a[i]) && (len - i > 0))
{
ii = binSearch(a+i+1, len - i - 1, key);// 在后半段数组中查找
if(ii != -1)
returnii + i + 1;// 加上数组前半段的长度
else
return-1;
}
elseif(key < a[i] && i > 0)// 在前半段数组中查找
returnbinSearch(a, i, key);
elseif(key == a[i])
returni;// 返回关键字在数组中的下标
else
return-1;// 未在数组中找到关键字
}
冒泡排序
int temp; for(int i=0;i<9;i++) { for(int j=0;j<10-i-1;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } }
创建二叉树并能实现二叉树的先序、中序、后序遍历如果输入数据为:a b c 输出结果为:a b c b a c b c a
arr = File.open("ri.txt").readlines
lines = arr.size
puts "myfile has #{lines} lines in it."
longest = arr.collect {|x| x.length}.max
puts "The longest line in it has #{longest} characters."
读取某文件有几行,字数最多的一行有几个字。
分享到:
相关推荐
Ruby 笔试题目文档 学习 面试使用
Ruby Ruby Ruby Ruby Ruby Ruby
Ruby的几道题目博客的测试文件,包含words.txt,wordcount.txt,word_chinese.txt,具体请看博客:http://blog.csdn.net/hjl240/article/details/50571552
ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...
Ruby是一种动态、开源的编程语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build...
ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby
《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...
Ruby是一种强大的、面向对象的脚本语言,广泛用于Web开发、服务器端编程和各种应用程序。在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求...
src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...
ruby源代码 ruby源代码 ruby源代码 ruby源代码2
Ruby是一种简洁而功能强大的编程语言,由日本的松本行弘(Yukihiro "Matz" Matsumoto)在1993年开发,并于1995年公开发布。Ruby语言设计之初就非常注重开发人员的编程体验,它拥有自然、表达性强的语法,易于阅读和...
**Ruby-TensorStream:用Ruby重现实现TensorFlow** Ruby-TensorStream是一个开源项目,旨在为Ruby开发者提供一个类似于Google TensorFlow的深度学习框架。它的核心目标是让Ruby程序员能够利用TensorFlow的强大功能...
ruby源代码 ruby源代码 ruby源代码 ruby源代码4
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本资源“ruby-v3.1.1.zip”包含了Ruby的最新版本3.1.1,这是一个重要的里程碑,因为它引入了新特性、性能优化以及对旧...
Ruby是一种强大的动态编程语言,广泛应用于Web开发,脚本编写,服务器管理等领域。为了在没有外网连接的环境中搭建Ruby环境,你需要提前下载并准备相关的安装包。在提供的压缩包中,包含了三个关键文件:`ruby-2.7.2...
### Ruby 教程《The Book of Ruby》知识点总结 #### 一、书籍基本信息 - **书名**:《The Book of Ruby》 - **作者**:Huw Collingbourne - **出版年份**:2011年 - **出版社**:No Starch Press - **ISBN-10**:1-...
ruby interpreter 原理探討 At first glance, learning how to use Ruby can seem fairly simple. Developers around the world find Ruby’s syntax to be graceful and straightforward. You can express ...
使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库...
七周七语言 Ruby篇 第一天习题答案 puts 'q11: game: guess number' puts 'a11:' result = (rand * 10).to_i guess = gets.to_i while guess != result if guess puts 'too low' elsif guess > result puts ...
ruby源代码 ruby源代码 ruby源代码 ruby源代码3