jruby sort函数与cruby sort函数的区别

1.实现算法不一样,jruby sort函数的排序算法采用的是插入排序而cruby则是快速排序
2.参数block的区别(最主要区别):
sort {|x,y| <表达式>}
第一区别:x,y的赋值不一样,cruby中,x,y的值是按照下标序列赋值,而jruby中,按照下标序列相反顺序赋值
第二区别:根据<表达式>返回的值进行的操作不同:
cruby下,当<表达式>返回的值不等于-1时进行序列位置调整;(不稳定排序)
jruby下,当<表达式>返回的值不等于1时进行序列位置调整。

test.rb
arr = [11,2,34,1,5].sort do |x,y| 
p "x = " + x.to_s + " " +"y = " +y.to_s
x==2?1:x<=>y
end
p arr


C:\Documents and Settings\someone\桌面>jruby test.rb
JRuby limited openssl loaded. http://jruby.org/openssl
gem install jruby-openssl for full support.
"x = 2 y = 11"
"x = 34 y = 2"
"x = 1 y = 34"
"x = 1 y = 2"
"x = 1 y = 11"
"x = 5 y = 34"
"x = 5 y = 2"
[1, 11, 2, 5, 34]

C:\Documents and Settings\someone\桌面>ruby test.rb
"x = 11 y = 34"
"x = 34 y = 5"
"x = 11 y = 5"
"x = 2 y = 11"
"x = 1 y = 11"
"x = 2 y = 34"
"x = 5 y = 1"
[1, 5, 11, 34, 2]


可以使用sort!函数来查看排序过程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值