在ruby中Array的排序方法sort用法注意点
Returns a new array created by sorting self. Comparisons for the sort will be done using the <=> operator or using an optional code block. The block implements a comparison between a and b, returning -1, 0, or +1. See also Enumerable#sort_by.
a = [ "d", "a", "e", "c", "b" ]
a.sort #=> ["a", "b", "c", "d", "e"]
a.sort {|x,y| y <=> x } #=> ["e", "d", "c", "b", "a"]
以上是ruby api的说明;
我在模拟一个双色球号码生成器的case时候
def create_num
@nums = Array.new
#先选择6个红球/33球
while @nums.length < 6
@num = rand(32) + 1
unless @nums.delete(@num)
@nums << @num
end
end
#前面6个排序
@nums.sort
#后选择1个篮球/16球
@nums << rand(15) + 1
end
p create_num
我以为排序后的原数组对象会想java工具类Arrays.sort一样排一下就OK了.
public class TestCase {
final static String[] a = new String[]{"a", "g", "d", "k", "f"};
public static void main(String[] args) {
String[] b = new String[]{"a", "f", "d", "l", "c"};
Arrays.sort(b);
for(String s : b) {
System.out.println(s);
}
}
}
以上ruby代码输出是没有排序的
最后修改为
def create_num
@nums = Array.new
#先选择6个红球/33球
while @nums.length < 6
@num = rand(32) + 1
unless @nums.delete(@num)
@nums << @num
end
end
#前面6个排序
# @nums.sort
#或者用这个方法sort!
@nums.sort!
#后选择1个篮球/16球
@nums.sort << rand(15) + 1
end
p create_num
这是需要注意的一点 可能动态代码都不支持直接改变其引用吧
ps==================================
结果 gigix指点 可以用sort!方法 不太用心的原因
分享到:
- 2008-11-29 21:40
- 浏览 2239
- 评论(2)
- 论坛回复 / 浏览 (2 / 6885)
- 查看更多
相关推荐
sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的...
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他...
要求:不提供单独的升序和降序排序方法(不分别定义一个升序和一个降序方法),而只提供一个排序方法SortArray(),它接受一个委托类型的参数compare,该参数会引用要使用的比较方法。为执行降序排序,向排序方法...
鸡尾酒排序(双向冒泡排序)CockTailSort(int *array, int length) 或 BiDirectionalSort(int *array, int length) 3.快速排序 QuickSort(int *array, int length) 归并排序(MergeSort.h) 1.归并排序 MergeSort...
javascript 中 Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列,实例代码如下: var arrA = [6,2,4,3,5,1]; arrA.sort(); [removed]ln(arrA); //结果是:1,2,3,4,5,6 sort() 方法可以接受...
bp-array-sort 是错误的 Array.prototype.sort 方法浏览器实现的故障转移实现 安装 我们使用将其加载到浏览器中,但您应该能够将其与其他浏览器模块管理器一起使用。 在nodejs使用: npm i --save bp-array-sort...
本文实例讲述了js使用Array.prototype.sort()对数组对象排序的方法。分享给大家供大家参考。具体分析如下: 在讲对数组对象进行排序时,我们先来简单的了解一下Array.prototype.sort()。sort方法接受一个参数——...
结果如下: 代码如下: [1,10,5] 仔细深究之后,发现原来默认的sort方法并不是按照整形数据来排序,而是用的字符串匹配方式。 换言之就是10 中的这个 1 导致了上面代码的错误。 当然,解决方法有很多,可以给sort方法...
Array数组相当于java中的ArrayList 定义方法: 1:使用new Array(5 )创建数组 var ary = new Array(5); 2:使用Json语法,var ary = 【1,3,4】; 数组排序: 例: 代码如下: function sort(){ var ary=[11,12,3,5...
Array.prototype.sort方法是对数组进行排序, 该方法带一个函数参数,用来指定排序的规则. 我们先来看看sort 的简单应用: var arr=[2,1,3,4]; alert(arr.sort()) // [1,2,3,4] 从小到大排列 //现在由大...
安装使用安装: $ npm install --save arr-sort 安装: $ yarn add arr-sort用法按给定的对象属性对数组进行排序: var arrSort = require ( 'arr-sort' ) ;var arr = [ { foo : 'y' } , { foo : 'z' } , { foo : 'x...
reverse方法将一个Array对象中的元素位置进行反转,sort方法返回一个元素已经进行了排序的 Array 对象,下面为大家介绍下
javascript 中 array.sort() 中的参数,需要传入的是一个函数,而且必须是一个函数
例如像下面的数组: 复制代码 代码如下:$users = array( array(...使用这个方法,会比较麻烦些,要将age提取出来存储到一维数组里,然后按照age升序排列。具体代码如下: 复制代码 代码如下:$ages = array();forea
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点, 首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他...
本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法。分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的...
JavaScript常用数组排序方法,冒泡排序和sort()方法的使用