- 浏览: 591457 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
wzh051527:
我是大四实习生一个,自我感觉技术能力在第三年。。唯一不明白,为 ...
十年技术,不要再迷茫 -
room_bb:
.hrl文件怎么加入到编译规则里面?比如:pp.hrl文件-d ...
Erlang中用的makefile的一点解释 -
吉米家:
感觉帆软报表的flash打印就很不错哇,特别好用
JSP 实现报表打印 -
雪碧爱芬达:
苦逼程序员的辛酸反省与总结 -
mlyjxx:
...
十年技术,不要再迷茫
本帖最后由 xinyu126 于 2012-9-20 10:35 编辑
package { import flash.display.Sprite; import flash.events.Event; import flash.utils.getTimer; public class uilib extends Sprite { public function uilib() { test(null); } private function test(evt:Event):void{ var len:int = 100000; var arr:Array = new Array(len); for(var i:int = 0; i<len;i++){ arr[i] = i; } var start:int; var end:int; start = getTimer(); arr = func1(arr); end = getTimer(); trace('func1=>',end-start); start = getTimer(); arr = func2(arr); end = getTimer(); trace('func2=>',end-start); start = getTimer(); arr = func3(arr); end = getTimer(); trace('func3=>',end-start); start = getTimer(); arr = func4(arr); end = getTimer(); trace('func4=>',end-start); start = getTimer(); arr = func5(arr); end = getTimer(); trace('func5=>',end-start); } private function func1(rawArr:Array):Array{ rawArr.sort(function():Number{ return Math.random()-0.5>0?1:-1; }); return rawArr; } private function func2(array:Array):Array { var newArray:Array = new Array(); while (array.length > 0) { newArray.push(array.splice(Math.floor(Math.random()*array.length), 1)); } return newArray; } private function func3(myArray:Array):Array { for (var i:uint = 0; i < myArray.length; i++) { var rand:uint = int(Math.random() * myArray.length); myArray.push( myArray.splice( rand, 1 )[0] ); } return myArray; } private function func4(myArr:Array):Array{ var rnd:int; var tmp:*; for(var i:uint = 0;i<myArr.length;i++){ tmp = myArr[i]; rnd = Math.random()*myArr.length; myArr[i] = myArr[rnd]; myArr[rnd] = tmp; } return myArr; } private function func5(myArr:Array):Array{ var rnd:int; var tmp:*; var len:int = myArr.length; for(var i:uint = 0;i<len;i++){ tmp = myArr[i]; rnd = Math.random()*len; myArr[i] = myArr[rnd]; myArr[rnd] = tmp; } return myArr; } } }
看运行结果: func1=> 568 func2=> 4740 func3=> 9412 func4=> 53 func5=> 44数组的所有操作下标操作是最快的。这也是数组的最基本的结构了。其他的操作都是对索引的高级处理。除了pop和push,其他都很耗时间。 所以方法4比2,3快。 方法1是个例外,之前我判断失误。原本以为1会很慢,因为他还有函数调用。后来一想,人家内部就是一个循环,并且也是交换而已。肯定不能比2,3慢。 方法5是方法4的优化。所谓优化就是不要在循环里面去array的长度而已。所以for循环的时候用i--会比i++快。 |
发表评论
-
as3 Loader 加载资源后内存泄露无法释放的问题。
2014-06-21 10:30 674as3 Loader 加载资源后内存泄露无法释放的问题。 ... -
as3判断flash player版本的函数
2014-06-10 20:35 835//判断当前版本是否高于9.0.115.0为例子. pr ... -
CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
2014-04-03 15:25 1019华文细黑:STHeiti Light [STXihei]华文 ... -
as3.0的垃圾回收机制
2013-09-07 14:02 1501还是同样的博客,还是同样的作者(Daniel Sidhio ... -
AIR程序多开
2013-09-07 13:55 1002AIR应用通常不能像QQ那样能进行多开操作。为了让一个用AI ... -
starling性能优化总结
2013-07-22 14:06 1472在项目开发的过程中总结了一下starling的性能优化方案: ... -
AS3 Socket从零开始
2013-07-22 12:54 1099大家如果想学AS3 Socket直接在百度里搜一下,会找到很 ... -
绕开AS3安全沙箱 跨域加载SWF
2013-07-11 12:53 909AS3的安全沙箱的确是 ... -
解决AS3在ie中初始化时stageWidth和stageHeight为0
2013-06-14 09:23 1012先看下面的一段脚本,这是比较经典的初始化脚本: pac ... -
动态获取swc中的类
2013-05-25 10:32 949想通过代码生成,来获取swc中的类,并且可以作为普通类正常使 ... -
AS3 中字符串的format功能实现
2013-05-25 10:19 835使用C#的朋友都知道,string.Format();还是挺 ... -
总结调用Flash的几种方法
2013-05-02 16:18 1663一、Adobe 提供的方法 <object wi ... -
Flash3D错误集锦
2013-05-02 14:03 935VerifyError: Error #1014: 无法找到 ... -
使用scale拉伸之后的坐标问题
2013-04-12 09:38 1287最近发现论坛多了很多 ... -
30个实用的网页设计工具
2013-03-20 09:58 818作为一位网页设计师或开发者,你一直需要搜寻获取强大的网页设计 ... -
如何成为强大的程序员?
2013-03-11 11:27 726Aaron Stannard是新创公 ... -
漫谈重构
2013-03-11 11:09 856因为工作内容的原因, ... -
AS3使用谷歌API生成二维码
2012-12-10 16:24 1354二维码在新闻杂志,网站,网络广告,电视广告等地方随处可见 ... -
OOP的聚合原则
2012-12-10 16:21 926什么是聚合? 聚合可以很好地表达对象是什么和做 ... -
压缩速率追踪
2012-11-02 14:16 1453Flash Player 11.3添加了一个压缩和解压B ...
相关推荐
1. **数组定义与初始化** 在PHP中,数组是一种存储多个值的数据结构。数组可以通过`array()`函数创建,例如: ```php $arr = array('a' => "你", 'b' => "我", "他"); ``` 或者使用简短语法: ```php $arr =...
这段代码首先初始化一个数组 `$input`,然后使用 `array_rand()` 抽取两个随机的键存储到 `$rand_keys` 中,最后通过键值访问数组元素并打印出来。 在实际应用中,比如从数据库中获取记录,我们可以先查询满足条件...
AS3蚁群算法是一种在ActionScript 3(AS3)编程语言中实现的仿生优化算法,灵感来源于自然界中蚂蚁寻找食物的行为。蚂蚁通过释放信息素来与同伴沟通,找到从食物源到巢穴的最短路径。在计算领域,这种算法被用于解决...
通过分析这些模块和源码,我们可以学习到AS3中的事件处理、类和对象的使用、数组操作、条件判断等基础知识,同时也能了解到如何利用Flash的图形和动画功能来提升用户体验。 总之,AS3版的FLASH扫雷游戏是一个集成了...
总结,Numpy是Python数据分析的基础,它的数组和丰富的函数库极大地提升了数据处理的效率。熟练掌握Numpy,无论是进行简单的数据操作还是复杂的AI开发,都将事半功倍。在接下来的学习中,我们将进一步探索Numpy的...
标题中的“Dim ds As New DataSet_java_”是一个VB.NET代码片段,它声明并初始化了一个名为`ds`的数据集(DataSet)对象。数据集是.NET框架中的一个类,它用于存储和处理关系型数据,通常是从数据库中检索的。在Java...
这些函数通常针对数组进行矢量化操作,即一次运算即可应用到整个数组,大大提高了效率。 数组的索引和切片类似于 Python 的列表,支持单索引、切片和布尔索引。通过索引,可以访问和修改数组中的元素。此外,Numpy ...
numpy库是Python中用于科学计算的核心库,它提供了一个高性能的多维数组对象——ndarray,以及对这些数组进行各种运算的函数。使用numpy库,我们可以高效地处理大量数据,尤其适合进行数值计算。在导入numpy库时,...
`numpy` 是 Python 中用于科学计算的核心库,它提供了高性能的多维数组对象 `ndarray`,以及大量用于操作这些数组的函数。`ndarray` 是一个高效的数据结构,特别适合处理大型矩阵,它支持向量化操作,避免了使用 ...
在实际项目中,还需要考虑一些其他方面,比如错误处理(如输入验证、空数组等)、数据持久化(保存和加载参与者列表)以及可能的并发问题(如果程序可能在多线程环境中运行)。此外,如果参与者数量非常大,可能需要...
它通过提供高性能的多维数组对象以及一系列处理这些数组的功能,极大地提升了Python在数值计算方面的效率。 #### 二、核心特性 ##### 1. 多维数组对象 - **`ndarray`对象**:NumPy的核心是`ndarray`(n-...
快速排序的时间复杂度在平均情况下是O(n log n),最坏情况(如已排序数组)是O(n^2),但这种情况在实际应用中很少发生,因为可以通过随机化基准元素的选择来避免。空间复杂度主要取决于递归深度,一般为O(log n)。 ...
- **数组基础知识**:介绍数组的概念,包括如何声明和初始化数组。 - **索引数组**:深入理解索引数组的工作原理,包括如何访问元素、修改数组内容以及使用循环进行迭代。 - **关联数组**:探讨如何使用键值对形式的...
- 随机化算法(Randomized Algorithms)在执行过程中使用随机选择的元素或决策,通常用以提升效率和性能。 - 排序算法(Sorting Algorithms)如堆排序和快速排序,是将数据项按照特定顺序进行排列的算法,对于数据...
- **类似于NumPy**:对于熟悉NumPy的用户来说,上手PyTorch非常容易,两者在数组处理上有很高的相似度。 #### 三、PyTorch入门指南 ##### 3.1 安装PyTorch 可以通过Anaconda或pip来安装PyTorch。推荐使用Anaconda...
1. **初始化**:选择K个初始质心,通常是随机选取数据集中的K个点作为起始聚类中心。 2. **分配**:对于数据集中每一个点,计算其与所有质心的距离,然后将其分配到最近的质心所对应的簇。 3. **更新**:根据簇内...
- **核心功能**:多维数组对象 `ndarray`、广播功能、矢量化操作等。 2. **Pandas** - **功能**:Pandas 是基于 NumPy 的一种工具,提供了大量用于数据处理和分析的函数和方法。 - **应用场景**:适用于结构化...
例如,我们可以创建一个一维数据集,如随机正态分布的数组,通过`plot()`函数将其绘制出来: ```python import numpy as np import matplotlib.pyplot as plt np.random.seed(1000) y = np.random.standard_normal...
在Python的世界里,有一些不可或缺的库或插件,极大地提升了开发效率和数据分析能力。本篇文章将详细探讨标题提及的三个重要插件:NumPy、Matplotlib,以及它们在Python2.7.7环境中的应用。 NumPy是Python中用于...