flash as3.0 排序算法

作者:袖梨 2022-07-02

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

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

排序开始时,比较min与inner所指向的数,如果arr[min]>arr[inner],则将min指向inner所指向的数,inner指向下一个数;如果arr[min] ......
直到比较完成所有数,则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                     {
                           min = outter;
                           for(inner=1;inner                            {
                                   if(arr[inner]                                    {
                                          min = inner;
                                          swap(inner,min);
                                   }
                           }
                  }
       }

相关文章

精彩推荐