package
{
public class BubbleSort
{
public function BubbleSort()
{
var arr:Array = [2, 7, 9, 1, 5, 0, 9, 4];
trace(sort2(arr, true));
trace(sort2(arr, false));
}
/**
* AS3冒泡排序算法
* @param arr 需要排序的数组
* @param isAsc 是否升序
* @return 返回排序后的数组
*/
public function sort(arr:Array, isAsc:Boolean = true):Array
{
if(arr == null)
{
throw new Error("Array is null.");
}
var tmp:*;
if(isAsc)
{
for(var i:int = 0; i < arr.length; i++)
{
for(var j:int = arr.length - 1; j > i; j--)
{
if(arr[j] < arr[j - 1])
{
tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
}
}
}
}
else
{
for(i = 0; i < arr.length; i++)
{
for(j = arr.length - 1; j > i; j--)
{
if(arr[j] > arr[j - 1])
{
tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
}
}
}
}
return arr;
}
// 另一种写法
public function sort2(arr:Array, isAsc:Boolean = true):Array
{
if(arr == null)
{
throw new Error("Array is null.");
}
var tmp:*;
if(isAsc)
{
for(var i:int = 0; i < arr.length; i++)
{
for(var j:int = i; j < arr.length; j++)
{
if(arr[i] > arr[j])
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
else
{
for(i = 0; i < arr.length; i++)
{
for(j = i; j < arr.length; j++)
{
if(arr[i] < arr[j])
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
return arr;
}
}
}
AS3冒泡排序算法
最新推荐文章于 2016-10-20 16:05:11 发布