选择排序跟冒泡排序一样主要做两件事:比较与交换
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);
}
}
}
}