首页 > 技术文章 > 过程实现快速排序算法

VincentChuChu 2015-07-06 11:58 原文

引用:http://diomas.ru/2009/11/05/process/#cut1 

 分布式计算任务的时候,我发现当我写任何基于html模板生成器。XML文件与我做生意,是巨大的和每个递归树就必然导致超限制起飞消息执行脚本。幸运的是,我当时看到有人flaser。我决定要在ru迭代每个树节点的后续调用帧。我要在一帧,然后调用多个迭代,通过改造工作,还有后来setInterval通过Timer。无论如何,我还是копипаст代码变更和小幸福。但当时已经10次应该做例行可怕解析器我做出一切必要的决定,个人仍然用于这样的任务。
我写的类调用需要承担方法在迭代周期,需要休息下,UI应用程序可以继续与用户互动。按说我应该叫这类的线程(ender - lib),但当时我并没有想过自己,称他是Process,为什么不呢?。他:

Process.as

我想要解决这个всякихProcessManager一年级,没有单独的类接口和其他垃圾多。整个总体处于静态方法的泛函最Process。我现在需要做一些解析器是отнаследова并实现的两种方法:Process(iteration)和吸附特性为progress。
()方法完成全部工作详细过程,整个工程所需的上下文属性类等等。除了有效工作,躺在这个方法,他需要返回Boolean值,表明迭代数据是否最新。
性能量显示progress已完成工作总量相比,可以容纳值到1.0 0.0。如果迭代次数一般是未知的值可以保持0.0返回1.0,当过程结束。另外在使用флексов框架意义之前把该属性标记[Bindable元(event = " processProgress”)]
对于示例代码就是对过程质量'омquicksort排序:

QuicksortProcess.as

 

这里我们用递归栈:那里折叠坐标下подмассив开始和结束都要处理。()方法把比较详细的当前值并在支点上,所以比较所有的排列。同时,所有数据必须存储在属性里面迭代类:日常подмассив边界(partLeftInd和partRightInd)、位置(控制点)和pivotInd点(cursorInd比较)。
使用这种过程非常简单:

  1. public function doQuicksort( array:Array ):void  
  2. {  
  3.     Process.blocklen = 20;  
  4.     Process.pauselen = 10;  
  5.     var process:QuicksortProcess = new QuicksortProcess( array );  
  6.     process.addEventListener( Process.COMPLETE, handleComplete );  
  7.     process.addEventListener( Process.PROGRESS, handleProgress );  
  8.     // пускай о прогрессе сообщается каждые 10%  
  9.     process.updateStep = 0.1;  
  10.     process.activate();  
  11. }  
  12.   
  13. private function handleProgress( event:Event ):void  
  14. {  
  15.     var process:QuicksortProcess =  
  16.         event.target as QuicksortProcess;  
  17.     trace( int( process.progress * 100 ) + "%" );  
  18. }  
  19.   
  20. private function handleComplete( event:Event ):void  
  21. {  
  22.     var process:QuicksortProcess =  
  23.         event.target as QuicksortProcess;  
  24.     trace(  
  25.         "сравнений: " + process.comparsions +  
  26.         ", макс. глубина рекурсии: " + process.maxDepth  
  27.     );  
  28. }  

 

 

 

 

 

推荐阅读