当前位置:软件学习 > Flash >>

flash as3.0 排序算法

选择排序跟冒泡排序一样主要做两件事:比较与交换

arr:一个数组,保存有需要比较的数据
outter:外循环变量,初始值为0,指向第一个数。
min:始终记录一次比较中最小的数,初始值为0,指向第一个数。
inner:内循环变量,初始值为1,指向第二个数。

排序开始时,比较min与inner所指向的数,如果arr[min]>arr[inner],则将min指向inner所指向的数,inner指向下一个数;如果arr[min]<arr[inner],则min不改变指向,inner指向下一个数。
......
直到比较完成所有数,则min所指向的数为最小数,将min所指向的数,即arr[min],与outter所指向的数,即arr[outter](此时outter所指向的还是第一个数)交换位置,这样arr中最小的数就排在第一个位置了。
......
接下来,外循环outter自加,指向第二个数,min指向第二个数,inner指向第三个数,继续比较arr[min]与arr[inner],知道第二轮比较完成,outter再自加,min指向第三个数,inner指向第四个数,继续比较......知道outter指向最后一个数

主要代码如下:


       private function selectionSort(arr:Array):void
       {
                    var outter:int;
                    var inner:int;
                    var min:int;
                    for(outter=0;outter<arr.length-1;outter++)
                    {
                           min = outter;
                           for(inner=1;inner<arr.length;inner++)
                           {
                                   if(arr[inner]<arr[min])
                                   {
                                          min = inner;
                                          swap(inner,min);
                                   }
                           }
                  }
       }

补充:flash教程,As3.0 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,