设为首页 加入收藏

TOP

Ruby数组(2):数组方法详细整理(七)
2019-08-15 00:10:23 】 浏览:568
Tags:Ruby 数组 方法 详细 整理

当在bsearch()中使用<=>符号时,必须将待比较值放在左边,因为<=>的操作符两边元素的顺序很重要。

a = [-1, 1, 2, 4, 5]

# 待比较值放左边,参数放右边
a.bsearch {|x| -1 <=> x}  # -1
a.bsearch {|x| 1 <=> x}   # 1
a.bsearch {|x| 2 <=> x}   # 2
a.bsearch {|x| 4 <=> x}   # 4
a.bsearch {|x| 5 <=> x}   # 5

a.bsearch {|x| 3 <=> x}   # nil

# 待比较值放右边,参数放左边
a.bsearch {|x| x <=> -1}   # nil
a.bsearch {|x| x <=> 1}   # nil
a.bsearch {|x| x <=> 2}   # 2
a.bsearch {|x| x <=> 4}   # nil
a.bsearch {|x| x <=> 5}   # nil

首先分析待比较值放左边,参数放右边的情况。

对于-1 <=> x1 <=> x,首先取中间元素2,比较的返回结果为-1,于是向左继续取得子数组[-1, 1],继续取中间元素1,对于1 <=> x所比较的返回结果0,于是立即停止并返回元素1。对于-1 <=> x比较的返回结果-1,于是向左继续取自数组[-1],最终比较的返回结果为0,返回-1元素。

对于2 <=> x,第一次取中间元素2就得到0,立即停止并返回。

对于4 <=> x5 <=> x,首先取中间元素2,比较的返回结果为1,于是向右继续取得子数组[4, 5],继续取中间元素5,对于5 <=> x所比较的返回结果0,于是立即停止并返回元素51。对于4 <=> x比较的返回结果-1,于是向左继续取自数组[4],最终比较的返回结果为0,返回4元素。

对于3 <=> x,自行分析。

再分析待比较值放右边,参数放右边的情况。

对于x <=> -1x <=> 1,首先取中间元素2,比较的返回结果为1,于是向右继续取得子数组[4, 5],到这已经不用再向后分析了,因为它们都大于待比价的值,使得一直向右取子数组,最终导致返回nil。

对于x <=> 2,第一次取中间元素2就得到0,立即停止并返回。

对于x <=> 4x <=> 5,首先取中间元素2,比较的返回结果为-1,于是向右继续取得子数组[-1, 1],到这已经不用再向后分析了,因为它们都小于于待比价的值,使得一直向左取子数组,最终导致返回nil。

首页 上一页 4 5 6 7 8 9 下一页 尾页 7/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Ruby中to_s和to_str、to_i和to_in.. 下一篇Python之路【第四篇】:Python基础..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目