- 浏览: 391961 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
yanmie:
您的文章已被我们收录地址:http://www.airmyth ...
学习一下 Pixel Bender -
chaimzane:
我现在自己都有点看不懂了 实际上很简单, LocaleModu ...
Flex 优化技巧 -- 全局CSS样式模块实现RSLS 方式加载 -
muqingren:
以我现在对flex的了解,没看懂你说的........... ...
Flex 优化技巧 -- 全局CSS样式模块实现RSLS 方式加载 -
cony138:
卤煮碉堡了啊
A*寻路 -- 更加真实 的路径(一) -
jack_ye:
[/flash][/flash][/fl[u][u]ash][ ...
Alternativa3D 8 基础理论 / 概念
排序算法 之 AS3
package { import flash.display.Sprite; import flash.utils.getTimer; public class ActionscriptSortTest extends Sprite { //要求将radomArr安从小到大排序 public function ActionscriptSortTest() { initRadomArr(); getBubbleSortArr(); } /* 冒泡排序是这样实现的: 1. 首先将所有待排序的数字放入工作列表中。 2. 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。 3. 重复2号步骤(倒数的数字加1。例如:第一次到倒数第二个数字,第二次到倒数第三个数字,依此类推...),直至再也不能交换。 冒泡排序的平均时间复杂度与插入排序相同,也是平方级的,但也是非常容易实现的算法 */ public function getBubbleSortArr():Array { var result:Array = radomArr.concat(); fucStart(); var i:int = 1; var j:int = 0; var n:int = result.length; for(i=1;i<n;i++) { for(j=0;j<n-i;j++) { if(result[j] > result[j+1]) { var temp:Number = result[j]; result[j] = result[j+1]; result[j+1] = temp; } } } fucEnd();//17786 return result; } private var t:int; private function fucStart():void { t = getTimer(); } private function fucEnd():void { trace(getTimer() - t); } private var radomArr:Array; private function initRadomArr():void { radomArr = []; for(var i:int=0;i<10000;i++) { radomArr.push(int(Math.random()*0xFFF)) } } } }
1.冒泡排序
/* 冒泡排序是这样实现的: 1. 首先将所有待排序的数字放入工作列表中。 2. 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。 3. 重复2号步骤(倒数的数字加1。例如:第一次到倒数第二个数字,第二次到倒数第三个数字,依此类推...),直至再也不能交换。 冒泡排序的平均时间复杂度与插入排序相同,也是平方级的,但也是非常容易实现的算法 */ public function getBubbleSortArr():Array { var result:Array = radomArr.concat(); fucStart(); var i:int = 1; var j:int = 0; var n:int = result.length; for(i=1;i<n;i++) { for(j=0;j<n-i;j++) { if(result[j] > result[j+1]) { var temp:Number = result[j]; result[j] = result[j+1]; result[j+1] = temp; } } } fucEnd();//17786 return result; }
2.插入排序
/* 一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 1. 从第一个元素开始,该元素可以认为已经被排序 2. 取出下一个元素,在已经排序的元素序列中从后向前扫描 3. 如果该元素(已排序)大于新元素,将该元素移到下一位置 4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 5. 将新元素插入到该位置中 6. 重复步骤2 */ public function getInsertionSortArr():Array { var result:Array = radomArr.concat(); fucStart(); var i:int = 1; var n:int = result.length; for(i=1;i<n;i++) { var temp:Number = result[i]; var j:int = i - 1; while((j>=0) && (result[j] > temp)) { result[j+1] = result[j]; j--; } result[j+1] = temp; } fucEnd(); return result; }
public function getInsertionSortArr():Array { var result:Array = radomArr.concat(); fucStart(); var i:int = 1; var j:int = 0; var n:int = result.length; for(i=1;i<n;i++) { for(j=0;j<i;j++) { if(result[j] > result[i]) { var temp:Number = result[j]; result[j] = result[i]; result[i] = temp; } } } fucEnd(); return result; }
public function getInsertionSortArr():Array { var result:Array = radomArr.concat(); fucStart(); var i:int = 1; var j:int = 0; var n:int = result.length; for(i=1;i<n;i++) { var temp:Number = result[i]; for(j=i;j>0 && temp<result[j-1];j--) { result[j]=result[j-1]; } result[j]=temp; } fucEnd(); return result; }
3.快速排序
/* 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。 步骤为: 1. 从数列中挑出一个元素,称为 "基准"(pivot), 2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分割之后,该基准是它的最后位置。这个称为分割(partition)操作。 3. 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。 递回的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递回下去,但是这个演算法总会结束,因为在每次的迭代(iteration)中,它至少会把一个元素摆到它最后的位置去。 */ public function getQuickSortArr():Array { var result:Array = radomArr.concat(); fucStart(); var n:int = result.length; quickSort(result,0,n-1); fucEnd(); return result; } private function quickSort(arr:Array,low:int,high:int):void { var i:int; var j:int; var x:int; if (low < high) { //这个条件用来结束递归 i = low; j = high; x = arr[i]; while (i < j) { while (i < j && arr[j] > x) { j--; //从右向左找第一个小于x的数 } if (i < j) { arr[i] = arr[j]; i++; } while (i < j && arr[i] < x) { i++; //从左向右找第一个大于x的数 } if (i < j) { arr[j] = arr[i]; j--; } } arr[i] = x; quickSort(arr, low, i - 1); quickSort(arr, i + 1, high); } }
4.选择排序
/* 选择排序是这样实现的: 1.首先在未排序序列中找到最小元素,存放到排序序列的起始位置 2.然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。 3.以此类推,直到所有元素均排序完毕。 */ public function getSelectionSort():Array { var result:Array = radomArr.concat(); fucStart(); var i:int = 0; var j:int = 0; var n:int = result.length; for (i = 0; i < n - 1; i++) { var min:int = i; for (j = i+1; j < n; j++) { if (result[j] < result[min]) { min = j; } } /* swap data[i] and data[min] */ var temp:Number = result[i]; result[i] = result[min]; result[min] = temp; } fucEnd();//6214 return result; }
5.鸡尾酒排序
/* 鸡尾酒排序,也就是定向冒泡排序, 鸡尾酒搅拌排序, 搅拌排序 (也可以视作选择排序的一种变形), 涟漪排序, 来回排序 or 快乐小时排序, 是冒泡排序的一种变形。此算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。 */ public function getCocktailSortArr():Array { var result:Array = radomArr.concat(); fucStart(); var i:int = 0; var n:int = result.length; var top:int = n - 1; var bottom:int = 0; var swapped:Boolean = true; while(swapped) { // if no elements have been swapped, then the list is sorted swapped = false; var temp:Number; for(i = bottom; i < top;i++) { if(result[i] > result[i + 1]) { // test whether the two elements are in the correct order temp = result[i];// let the two elements change places result[i] = result[i + 1]; result[i + 1] = temp; swapped = true; } } // decreases top the because the element with the largest value in the unsorted // part of the list is now on the position top top = top - 1; for(i = top; i > bottom;i--) { if(result[i] < result[i - 1]) { temp = result[i]; result[i] = result[i - 1]; result[i - 1] = temp; swapped = true; } } // increases bottom because the element with the smallest value in the unsorted // part of the list is now on the position bottom bottom = bottom + 1; } fucEnd();//6214 return result; }
发表评论
-
blog
2014-01-21 13:37 888http://www.catalinzima.com/ -
在cocos2d-x中实践数据驱动的游戏开发
2014-01-21 09:33 3348from: http://elvisco.de/2013/0 ... -
Inside the AS3 Date class: Timezones and Daylight Saving Time
2014-01-17 13:54 1230from: http://www.computus.org/ ... -
Make an AS3 Flash Component with Custom UI Controls
2013-06-28 22:24 2194from: http://studio.barliesqu ... -
234234234234
2013-06-25 21:17 0http://howtonode.org/how-to-ins ... -
AdobeMax: Deep Dive into Flash Player Rendering
2013-06-21 10:41 1550from http://www.developria.com ... -
网络游戏的对时以及同步问题
2013-05-15 16:27 1145from: http://blog.codingnow.co ... -
111
2013-04-27 22:24 0http://flashgamedojo.com -
Bitmap 海浪实现方式
2013-03-13 17:10 967Bitmap 海浪实现方式 package { ... -
Developing Flash Platform games
2012-12-25 16:37 1260转: http://www.adobe.com/inspire ... -
AS3地图拼接与战争迷雾的实现
2012-11-05 12:44 2227转:http://bbs.9ria.com/thread-1 ... -
终极优化你的游戏 —— 使用脏矩形技术
2012-10-17 10:30 1728转载: http://dev.gameres.com/arti ... -
A*寻路 -- 更加真实 的路径(一)
2012-08-11 11:58 11480转:http://bbs.9ria.com/threa ... -
仿photoshop中的取色器,制作思路
2012-07-10 16:41 2438早期在论坛的帖子,保存留念。有点感慨那时的学习尽头。 ... -
transformTool matrix
2012-07-10 15:46 1792以前在论坛发的贴,转存 原地址: http://b ... -
排序算法复习 之 AS3
2012-07-06 18:38 3999以前在论坛的贴子,保存之。 原链接: http: ... -
AS3速成-从Flash的内容中移除右键菜单
2012-07-06 14:00 2571转: http://bbs.9ria.com/thread-1 ... -
AS3 四叉树
2012-07-06 10:09 1515转载:http://developbbs.com/?p=115 ... -
深入理解Flash的沙箱 – Application Domains
2012-07-04 14:18 1232转: http://kevincao.com/2010/1 ... -
2D动画实现效率评测
2012-07-02 22:31 4325转:http://www.todoair.com/2d%E5% ...
相关推荐
雷赛运动底层源码兼容性升级:品牌间无缝对接与高效运动性能保障,雷赛运动底层源码可交其他品牌正运动,固高源码 ,核心关键词:雷赛运动底层源码; 正运动品牌交换; 固高源码; 运动控制源码。,"雷赛与正运动固高源码互通,运动控制底层源码灵活可换"
MATLAB仿真及应用练习
C#工业互联网云服务器框架:高性能Web API与MQTT集成,带移动设备测试demo及多种协议支持(包括EF6+数据库扩展、无IIS依赖),c# 工业互联网云服务器框架。 集成web api服务,可选集成mqtt服务器及其它服务器,这套带码是通过C#编写集成IOCP高性能高并发优势服务器服务源码。 带手机app测试demo源码 具体具备功能如下: 1、具备EF6+mssql数据库功能,可更改为MYSQL或SQLITe. 2、自带WEB API服务,抛弃IIS支持。 用户可以通过WEB前端直接读取远程设备数据以及下发控制指令。 WEB API功能有服务器日志查询、WEB API接口认证用户管理、远端设备注册管理、服务器轮询读取任务启停、服务器参数设置、查询历史数据记录、下发指令到终端设备。 3、系统目前支持modbus 、modbus rtu协议,可定制开发集成Modbus TCp、西门子PLC S7协议、OPC协议、三菱PLC协议以及集成MQTT服务(以上协议在框架中没有集成,可以定制集成)。 4、系统自带MVC服务,开发API像平常使用的一样方便。 另外它自带硬件协议驱动。 5、与
80W高PF值可调电源方案:适用于LED驱动与笔记本充电,满足安规与EMC标准,附详细资料,80W可调高PF电源方案 高功率因数(高PF值) 符合安规要求,可过EMC家电标准。 主要应用于:LED驱动(无频闪),笔记本充电器。 等 输入100~。 输出可调。 资料: PCB文件(AD,99) 原理图 BOM单 散热片图纸 主副变压器图纸 ,核心关键词:可调高PF电源方案; 80W功率; 符合安规与EMC标准; LED驱动; 笔记本充电器; PCB文件; 原理图; BOM单; 散热片图纸; 主副变压器图纸。,"可调高功率因数电源方案:80W LED驱动与笔记本充电器必备"
锂电池管理系统中的选择性放电与可重构式均衡(旁路开关技术与均衡仿真),锂电池均衡仿真 电池管理系统 选择性放电 可重构式均衡(旁路开关) ,核心关键词:锂电池均衡仿真; 电池管理系统; 选择性放电; 可重构式均衡(旁路开关)。,"基于选择性放电策略的锂电池均衡仿真及可重构式均衡管理系统研究"
基于分层调度方法的分布式电动汽车协同调度算法研究——结合线性规划与二阶锥优化方法的MATLAB实现,分布式和电动汽车协同调度matlab 采用分层调度方法,采用线性规划和二阶锥方法实现分布式和电动汽车协同调度,程序运行稳定,有详细的参考资料 ,核心关键词:分布式; 电动汽车; 协同调度; MATLAB; 分层调度方法; 线性规划; 二阶锥方法; 程序稳定性; 详细参考资料。,基于Matlab的电动汽车与分布式系统协同调度策略:分层调度与优化算法
基于三菱PLC与组态王技术的鸡舍温湿度智能控制系统,基于三菱PLC和组态王鸡舍温湿度控制养鸡场 ,核心关键词:三菱PLC; 组态王; 鸡舍温湿度控制; 养鸡场。,基于三菱PLC与组态王鸡舍温湿度智能控制养鸡场方案
"某特种电机Maxwell与Simplorer联合仿真性能探究:波形分析揭示内在性能",某特种电机Maxwell+Simplorer联合仿真及其性能波形 ,核心关键词:Maxwell; Simplorer联合仿真; 特种电机; 性能波形;,"Maxwell与Simplorer联合仿真:特种电机性能波形解析"
智慧档案馆建设方案旨在通过先进的信息技术和智能化手段,全面提升档案管理的效率和安全性,满足现代档案管理的需求。方案涵盖了软件、硬件、网络及安全、分布式存储、数据保护、机房建设等多个方面,确保档案馆在数字化、智能化转型中具备高效、安全、可扩展的能力。 在软件部分,智慧档案馆平台集成了档案接收、管理、保存、智能库房管理、辅助鉴定、编研、统计、内部利用、电子阅览室智能服务等功能模块。通过智能化的档案接收和管理流程,系统能够高效处理各类档案数据,支持历史数据迁移、数字化成果接收、征集档案接收等操作。智能库房管理模块通过虚拟库房、调卷归卷管理、温湿度管理等功能,确保实体档案的安全保管和高效利用。此外,系统还提供了智能辅助鉴定、编研、统计等功能,帮助档案馆实现档案的智能化管理和利用。 硬件部分则包括网络及安全设备、分布式存储、数据保护一体机、离线备份设备、机房建设等。网络及安全设备如核心交换机、汇聚交换机、下一代防火墙、终端安全管理系统等,确保了档案馆网络的高效运行和数据的安全防护。分布式存储系统通过全分布式架构和数据冗余技术,提供了高可伸缩性和高可用性,支持多副本或EC冗余机制,确保数据的安全性和快速重构。数据保护一体机和离线备份设备则通过多种备份和恢复机制,确保数据的完整性和可恢复性。机房建设部分则通过UPS、精密配电柜、精密空调、冷通道机柜等设备,确保机房的稳定运行和高效管理。 智慧档案馆建设方案不仅顺应了国家档案信息化建设的政策要求,还结合了云计算、区块链等新技术,确保了系统的先进性和安全性。通过智能化的档案管理和高效的数据保护机制,档案馆能够更好地服务于公众,提升档案利用效率,实现档案资源的共建共享。这一方案不仅是档案数字化转型的重要举措,也为未来档案馆的智能化发展奠定了坚实基础。
基于dsp28335的CAN升级方案及自主开发BootLoader与上位机流程说明,基于dsp28335的can升级方案 bootloader、上位机等全部自主开发 文件说明: 1、setup为上位机安装文件; 2、V5为dsp28335的BootLoader源代码,我用的CCS10.3.1; 3、WindowsApplication3为VS平台的上位机源代码,我用的VS2013; 4、app.bin为测试用的app烧录固件。 5、F28335_FLASH_COM_V1为app代码参考的cmd文件。 使用ZLG的USBCAN-II。如果是别家的盒子,看他是否给了兼容周力功的方法,按照那个方法操作上位机就可以 操作流程: 1、先连接好CAN盒和DSP(不上电),打开上位机(默认的设置,不要修改任何选项)。 2、点击“连接”,再点击“启动”。 3、打开目标bin文件。 4、DSP上电,3S内电机“更新固件”。 5、等待完成烧录,程序自动跳转到APP中。 注意: 1、如果DSP上电后,3秒内未收到ID:0x00001342发来的数据,则自动跳转到APP中; 2、如果上位机已经打开了
联邦管理系统 免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1jKDjYrEz1 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
ERP与MES系统源代码:WPF开发AGV上位机执行系统,集成SQL数据库技术、多线程技术及应用在工业组态的智能化开发,ERP MES 两套系统源代码 WPF AGV C# WPF开发。 A,WPF MES 上位机产线执行系统。 1, 完整纯源代码; 2, AGV自动调度; 3, SQLSERVER数据库。 带附加文件。 4, WPF各种技术应用。 5, 数据库技术应用。 6, DTU数据传输。 7, TCP IP SOCKET技术应用。 8, EXCEL数据查询与导出。 9, 各种库位的管理。 10,重要是多线程技术应用。 B,WPF工业组态。 1, 智能化工业组态。 2, WPF下的OPC开发。 3, 多链接plc下的工业开发。 4, 数据库的应用。 5, 各种典型WPF页面开发。 ,关键词:ERP; MES; WPF源代码; AGV; C#开发; SQLSERVER数据库; 完整纯源代码; AGV自动调度; 数据库技术应用; DTU数据传输; TCP IP SOCKET技术; EXCEL数据查询与导出; 各种库位管理; 多线程技术; WPF工业组态; 智能化工业组态; OPC开
西门子PLC Smart200锁机与Smart700IE V3程序配套:分期付款、动态验证码、无限次加密程序实例探究,PLC 西门子smart200 锁机 配对应西门子smart700IE V3程序,分期期付款 动态验证码,无限次加密 程序例程 ,核心关键词:西门子smart200; PLC; 锁机; 配对应; 西门子smart700IE V3程序; 分期付款; 动态验证码; 无限次加密; 程序例程。,西门子PLC Smart系列:Smart200锁机与Smart700IE V3程序匹配指南
基于Modbus RTU和TCP/IP协议的LABVIEW上位机数据展示与PLC通讯程序,LABVIEW上位机数据显示程序 本程序具有的功能包括: 1.采用的通讯协议modbus rtu,tcpip ,vmic闪存卡 2.具有故障报警功能 3.主要是与PLC进行通讯,如果支持以上协议的设备也可以通讯。 4.显示界面设计合理,可以借鉴。 本项目难点在于通讯,以及显示量过多,界面排版问题。 程序都有标注,不理解的可以指导。 ,关键词:LABVIEW上位机;数据显示程序;通讯协议;modbus rtu;tcpip;vmic闪存卡;故障报警;PLC通讯;显示界面设计;界面排版。,"Modbus RTU与TCP/IP通讯的LABVIEW上位机数据展示程序:故障报警与界面优化"
"著名车企汽车级平台主控芯片与电机控制器源码揭秘:卓越代码风格一览",著名车企汽车级平台主控芯片,电机控制器源码 ,代码风格极好 ,核心关键词:著名车企;汽车级平台主控芯片;电机控制器源码;代码风格极好;,"著名车企主控芯片源码揭秘:电机控制器代码风格卓越"
RT-Thread内核实现与应用开发实战——基于STM_ (Z-Library)
本代码是基于python pytorch环境安装的。 可参考博文进行安装环境运行代码-但需要先自行收集好图片放到对应文件夹下: https://blog.csdn.net/no_work/article/details/139246467 首先是代码的整体介绍 总共是3个py文件,十分的简便 本代码是不含数据集图片的,下载本代码后需要自行搜集图片放到对应的文件夹下即可 需要我们往每个文件夹下搜集来图片放到对应文件夹下,每个对应的文件夹里面也有一张提示图,提示图片放的位置 然后我们需要将搜集来的图片,直接放到对应的文件夹下,就可以对代码进行训练了。 运行01生成txt.py,是将数据集文件夹下的图片路径和对应的标签生成txt格式,划分了训练集和验证集 运行02CNN训练数据集.py,会自动读取txt文本内的内容进行训练,这里是适配了数据集的分类文件夹个数,即使增加了分类文件夹,也不需要修改代码即可训练 训练过程中会有训练进度条,可以查看大概训练的时长,每个epoch训练完后会显示准确率和损失值 训练结束后,会保存log日志,记录每个epoch的准确率和损失值 最后训练的模型会保
LabVIEW中英文虚拟键盘源程序:支持数字、字母、汉字输入,XP与Win7系统下的输入法检测与切换,触摸屏便捷操作及输入法名称的查看与修改,LabVIEW中英文键盘源程序 可输入数字、字母、汉字,能在 XP系统和Win7系统下检测并切电脑里安装的输入法。 在使用触摸屏电脑的时候可方便的输入所需内容。 有些输入法不同版本对应的编号不一样,可在程序里查看、修改界面显示的输入法名称。 ,LabVIEW; 虚拟键盘源程序; 数字字母汉字输入; 跨系统兼容(XP/Win7); 输入法检测与切换; 触摸屏电脑输入; 输入法名称查看与修改。,LabVIEW多语言虚拟键盘源程序:跨系统输入法切换与显示管理
Python+企业编码管理+源码+论文+毕业设计
智慧档案馆建设方案旨在通过先进的信息技术和智能化手段,全面提升档案管理的效率和安全性,满足现代档案管理的需求。方案涵盖了软件、硬件、网络及安全、分布式存储、数据保护、机房建设等多个方面,确保档案馆在数字化、智能化转型中具备高效、安全、可扩展的能力。 在软件部分,智慧档案馆平台集成了档案接收、管理、保存、智能库房管理、辅助鉴定、编研、统计、内部利用、电子阅览室智能服务等功能模块。通过智能化的档案接收和管理流程,系统能够高效处理各类档案数据,支持历史数据迁移、数字化成果接收、征集档案接收等操作。智能库房管理模块通过虚拟库房、调卷归卷管理、温湿度管理等功能,确保实体档案的安全保管和高效利用。此外,系统还提供了智能辅助鉴定、编研、统计等功能,帮助档案馆实现档案的智能化管理和利用。 硬件部分则包括网络及安全设备、分布式存储、数据保护一体机、离线备份设备、机房建设等。网络及安全设备如核心交换机、汇聚交换机、下一代防火墙、终端安全管理系统等,确保了档案馆网络的高效运行和数据的安全防护。分布式存储系统通过全分布式架构和数据冗余技术,提供了高可伸缩性和高可用性,支持多副本或EC冗余机制,确保数据的安全性和快速重构。数据保护一体机和离线备份设备则通过多种备份和恢复机制,确保数据的完整性和可恢复性。机房建设部分则通过UPS、精密配电柜、精密空调、冷通道机柜等设备,确保机房的稳定运行和高效管理。 智慧档案馆建设方案不仅顺应了国家档案信息化建设的政策要求,还结合了云计算、区块链等新技术,确保了系统的先进性和安全性。通过智能化的档案管理和高效的数据保护机制,档案馆能够更好地服务于公众,提升档案利用效率,实现档案资源的共建共享。这一方案不仅是档案数字化转型的重要举措,也为未来档案馆的智能化发展奠定了坚实基础。