在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
- 浏览 2279
- 评论(2)
- 论坛回复 / 浏览 (2 / 6907)
- 查看更多
相关推荐
虽然`Sort`方法通常很高效,但需要注意的是,对于大型数据集,它可能会占用大量内存,因为需要创建额外的数据结构来辅助排序。此外,如果排序的元素类型不支持比较操作,或者比较器定义错误,`Sort`方法可能会抛出...
在C#编程语言中,`Array.Sort()`方法是用于对数组进行排序的关键工具。这个方法提供了对数组元素的快速、高效排序,适用于多种数据类型,包括整型、浮点型、字符串以及自定义对象。本篇文章将深入探讨`Array.Sort()`...
在JavaScript中,数组的`sort()`方法是一个非常重要的功能,用于对数组的元素进行排序。然而,使用这个方法时需要注意一些细节,以确保它能够按照预期的方式工作。下面是对`sort()`方法的详细说明和注意事项。 1. *...
sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的...
在计算机科学领域,排序算法是数据处理的核心技术之一,它用于将一组无序的数据元素按照特定...在“array_sort”这个主题中,我们可以进一步研究如何针对数组数据结构实现高效的排序和查找操作,以满足不同场景的需求。
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他...
### JavaScript中Array的sort()方法使用详解 #### 一、引言 在JavaScript编程中,`Array`对象是处理和操作数据集的核心工具之一。其中,`sort()`方法作为Array对象的一个重要成员方法,用于对数组中的元素进行排序...
在C#中,如果你有一个数组并且想要对其进行排序,可以使用`Array.Sort()`方法。这个方法能够对任何实现了`IComparable`接口的对象数组进行排序,或者对值类型数组进行默认的比较器排序。例如,对于整型数组,`Array....
要求:不提供单独的升序和降序排序方法(不分别定义一个升序和一个降序方法),而只提供一个排序方法SortArray(),它接受一个委托类型的参数compare,该参数会引用要使用的比较方法。为执行降序排序,向排序方法...
如果数组包含自定义类型,`Array.Sort()`会使用该类型的`IComparable`接口来排序。 2. **ListViewItem.Sort()** 在Windows Forms开发中,`ListView`控件用于显示列表数据。`ListViewItem.Sort()`方法允许我们对`...
因此,本文将探讨如何重构 `Array.prototype.sort()` 方法,实现自定义的排序逻辑,并通过一个具体的示例——降序排序数组——来进行详细的解释。 #### 二、原始 `sort()` 方法详解 首先,我们来看一下原始的 `sort...
下面详细展开sort方法的使用方法以及相关的知识点。 ### sort方法的参数 在JavaScript中,Array的sort方法可以根据提供的函数表达式重新排列数组元素。这个函数需要能够定义排序的规则,它接受两个参数(通常是...
本文将详细介绍Array.sort()方法的用法,包括对数字数组、字符串数组以及对象数组进行排序的示例。 首先,Array.sort()方法可以对数组中的元素进行排序,当没有参数传入sort方法时,默认按照字符编码的顺序来排序...
PHP提供了多种排序函数,如sort、asort、ksort等,这篇文章将通过插入排序、选择排序、冒泡排序、快速排序四种常见排序算法的实现,来讲解PHP数组排序之sort、asort与ksort用法实例。 一、插入排序 插入排序是一...
在纯英文环境下,JavaScript的Array.sort()方法默认会按照ASCII码进行排序,但这对于中文字符来说并不适用。因此,我们需要使用localeCompare这个字符串方法来实现真正的中文字符排序。 首先,我们需要了解...
Java作为面向对象的语言,其内置的`Collections.sort()`和`Arrays.sort()`方法提供了对集合和数组的排序功能,同时也支持自定义比较器以满足不同排序需求。 在Java中,我们可以使用内置的排序方法对数组进行升序或...
我们可以使用`Array.prototype.sort()`方法对数据进行排序。例如,如果我们想要按照年龄升序排序: ```javascript let jsonData = { "data": [ {"name": "Tom", "age": 25}, {"name": "Jerry", "age": 30}, ...
鸡尾酒排序(双向冒泡排序)CockTailSort(int *array, int length) 或 BiDirectionalSort(int *array, int length) 3.快速排序 QuickSort(int *array, int length) 归并排序(MergeSort.h) 1.归并排序 MergeSort...
1. 减少比较次数:在已排序部分查找最小元素时,可以使用二分查找来减少比较次数,但需要注意的是,这种方法适用于部分有序的数组,如果数组完全无序,可能效果不明显。 2. 避免不必要的交换:如果在某次遍历中发现...