问题
我要打乱数组元素的顺序
解决办法
使用sort( ) 方法和自定义比较函数返回随机的正数或负数
讨论
很多情况我们需要得到一个随机排列的数组,比如有个游戏需要产生随机的字母。
有很多种方法达到这个目的,但是最简单的办法就是创建自定义比较函数,返回随机的正数或
负数,把该函数引用传递给sort( ) 方法:
下面的比较函数就能达到目的:
function randomSort(elementA:Object, elementB:Object):Number
{
return Math.random( ) - .5
}
Math.random( ) 返回0.0 到1.0. 减去0.5 ,正好有一半的几率是负数,一半为正数,因此这个数组经过随机排序
看下面的随机排序例子:
var numbers:Array = new Array( );
for(var i:int=0;i<20;i++)
{
numbers[i] = i;
}
numbers.sort(randomSort);
for(var i:int=0;i<numbers.length;i++)
{
trace(numbers[i]);
}
分享到:
相关推荐
vb.net 一种简洁的数组元素随机排序方法
C#的`Parallel.For`或者`async/await`模式可以派上用场,但这需要考虑到线程安全问题,避免在并发操作中修改同一数组元素时产生冲突。 总的来说,C#数组的随机排序是通过生成随机索引来实现元素位置的互换。理解并...
### Java 抽取数组中的数字元素并排序 在Java编程中,经常需要处理不同类型的数据,尤其是在Web开发领域,数据的清洗与整理尤为重要。本篇文章将详细介绍如何从一个包含字符串的数组中提取出数字,并对这些数字进行...
打乱排序,也称为洗牌算法,是一种随机化数组元素顺序的方法。最著名的算法之一是Fisher-Yates(或Knuth)洗牌算法,该算法适用于任何大小的数组,包括文本数组。在易语言中,我们可以按照以下步骤实现: 1. 定义...
要按升序和降序对一组随机生成的整型数组元素进行排序。要求:不提供单独的升序和降序排序方法(不分别定义一个升序和一个降序方法),而只提供一个排序方法SortArray(),它接受一个委托类型的参数compare,该参数...
在处理数组元素时,可能会遇到需要将数组元素随机排序,或是从数组中随机选取部分元素的场景。针对这样的需求,PHP内置了shuffle()函数,它能够将数组中的元素顺序打乱,实现随机化的效果。本文将对shuffle()函数...
shuffle()函数是一个非常实用的数组操作函数,它能够将数组中的元素随机排序。值得注意的是,shuffle()函数会修改原来的数组,而不返回新的数组。也就是说,调用shuffle()后,原数组的顺序会被改变,变为随机排序后...
- `GetRandomArray(T[] arr)` 方法接受一个泛型数组 `arr`,并对数组中的元素进行随机排序。这个过程采用了一种称为“随机化快速排序”的算法,虽然实际效果与标准的快速排序不同,但它确实实现了对数组的随机排列...
接下来,我们讨论如何随机生成数组元素。C#提供了`Random`类来生成随机数。可以先创建一个`Random`对象,然后用它来填充数组: ```csharp Random rand = new Random(); for (int i = 0; i ; i++) { numbers[i] = ...
冒泡排序通过不断地交换相邻的逆序元素,逐步将数组从小到大(或从大到小)排列。其基本步骤包括: 1. 遍历数组,比较相邻元素,若前一个元素大于后一个,则交换它们。 2. 对每个元素重复上述过程,直到数组完全...
它的基本思想是分治法(Divide and Conquer),通过选择一个基准元素,将数组分成两个子数组,使得一部分元素小于基准,另一部分元素大于基准,然后递归地对这两个子数组进行快速排序,最终实现整个数组的有序排列。...
` 输入数组元素。 7. **排序数组**: - 再次使用循环 `for (j = 0; j ; j++)` 对数组进行遍历。 - 使用内层循环 `for (i = j + 1; i ; i++)` 找到最小值的位置。 - 如果找到的最小值小于当前的最小值,则更新...
3. **递归排序**:对基准左右两边的子数组分别进行快速排序,这个过程一直持续到子数组只有一个元素,排序结束。 在实际应用中,选择基准的方式会影响快速排序的效率。常见的方法有以下几种: - **首尾取中法**:取...
这个示例不仅展示了如何在C#中实现数组元素的随机排序,还演示了泛型类的使用以及随机数生成器的应用,这些都是C#编程中的基础且重要的知识点。 总结起来,本篇内容主要涵盖以下C#知识点: 1. 泛型类的使用:`Item...
最后,该文档提到的实例中对0到9的数字进行随机排序,并展示了随机排序前后的数组元素,便于读者理解整个随机排序过程。随机排序后的数组元素是完全打乱的,每次执行时都有可能得到不同的排序结果,这正是随机排序的...
这段代码会在页面加载完成后执行,将随机排序后的数组元素输出到页面上。 总结来说,JavaScript实现数组随机排序是一个基础而实用的技术点,通过理解Fisher-Yates洗牌算法以及熟练掌握数组的遍历和排序技巧,可以...
洗牌算法是一种更为高效的随机排序数组元素的方法,也被称作Knuth shuffle。它按照数组的索引顺序,随机与后面的元素交换位置。由于每个位置都有可能与后面的任何位置交换,这样处理完后数组的顺序就变得随机了。 ...
这样,每个元素都有可能出现在数组的任何位置,从而实现了随机打乱排序的效果。 这个源码适用于进阶教程,因为它涉及到数组操作、随机数生成以及算法的应用。理解并实现这样的代码有助于提升易语言编程能力,尤其是...