一:数组和哈希表的区别
哈希表是通过 元素关键码 的值 直接查找 元素存储位置的 数据结构数组是通过 下标 可以直接访问到 下标对应位置上元素的 数据结构哈希表: 元素的关键码 通过 散射函数 映射 得到的函数值 就是 哈希表数组的下标(一般的哈希表组织元素的方法还是数组)数组只能通过下标迅速访问,但是这个下标与数组里存的元素值没什么关系;哈希表 通过散射函数 建立了 数组元素关键码的值 与 下标的关系 ; 是数组的加强版;所以;哈希表可以 直接访问到 元素关键码 对应的 元素 上去;(相当于由 关键码 通过 散射函数的映射 直接找到了 这个元素 在 哈希表 中的 下标)。但是由于散射函数的作用,元素不能占满整个哈希表,哈希表不是每一个位置都有元素的;综上述:哈希表:优点:直接访问到关键码值对应的元素(数据);缺点占用空间很大;数组:优点:结构紧凑;缺点:不能直接访问到关键码值所对应的元素(数据);
二:写一个递归
好像没有专门的符号,要求阶乘,需要定义一个递归的方法,如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的几道题目博客的测试文件,包含words.txt,wordcount.txt,word_chinese.txt,具体请看博客:http://blog.csdn.net/hjl240/article/details/50571552
ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码
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 ...
ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby
《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...
Ruby编程,Ruby编程,Ruby编程,Ruby编程,Ruby编程,
ruby源代码 ruby源代码 ruby源代码 ruby源代码2
ruby源代码 ruby源代码 ruby源代码 ruby源代码4
ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1
七周七语言 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
ruby-build - 编译和安装Ruby
ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件
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 ...
内含以下4个文档: 1、Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006.chm 2、O'Reilly.Learning.Ruby.May.2007.chm 3、Programming Ruby 2e.pdf 4、ruby中文文档.chm
Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp ...
ruby-4-variables.mp4 ruby-5-variables-rules.mp4 ruby-6-expression.mp4
Ruby/GraphViz - GraphViz绘图工具的Ruby接口
一本免费的在线书籍,旨在为您提供简洁,易学的Ruby学习指南。
Ruby开发流程涉及多个关键步骤,从环境搭建到项目部署,下面是一个大致的流程概述: Ruby开发环境搭建:首先,需要在计算机上安装Ruby开发环境。推荐使用macOS或各种发行版本的Linux作为运行环境,尽管Windows下也...