as3冒泡算法排序类
package{
//冒泡算法
public class BubbleSort{
public function bsort(arr:Array, sortType:String):Array{
var temp:*;
if(sortType.toLocaleLowerCase()=="desc"){ //降序排列
for(var i:int=0; i<arr.length; i++){
for(var j:int=arr.length-1; j>i; j--){
if(arr[j-1] < arr[j]){
temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
}
}else if(sortType.toLocaleLowerCase()=="asc"){ //升序排列
for(var m:int=0; m<arr.length; m++){
for(var n:int=arr.length-1; n > m; n--){
if(arr[n-1] > arr[n]){
temp = arr[n-1];
arr[n-1] = arr[n];
arr[n] = temp;
}
}
}
}else{
throw new Error("params error !");
}
return arr;
}
}
}
使用情况:
package {
import flash.display.Sprite;
import BubbleSort;
public class BubbleTest extends Sprite {
private var bubbleSort:BubbleSort = new BubbleSort();
public function BubbleTest() {
// constructor code
var arr:Array = [15,2,4,7,2,1,9,29,12];
trace("start array data : " + arr.toString());
arr = bubbleSort.bsort(arr,"asc");
trace("end array data : " + arr.toString());
}
}
}
/* output
start array data : 15,2,4,7,2,1,9,29,12
end array data : 1,2,2,4,7,9,12,15,29
*/