目标:排序
算法思路分析:
思想:The Divide and Conquer 把问题分成若干个子问题,递归解决
具体:取中间数,把数组分为 [小于中间数的数组],[中间数],[大于中间数的数组],递归上步骤,直到数组不能再分割(数组长度为1)。
C语言实现:
as3实现:
//生成一个100长度以内的随机数组var randomArr:Array=[]
var len:int=Math.ceil(100*Math.random())
for(var i:int=0;i<len;i++)
{
randomArr.push(Math.ceil(100*Math.random()))
}
trace(randomArr.length)
//快速排序函数
function quickSort(arr:Array):void
{
if(arr.length<=1) {
if(arr.length==1)
trace(arr[0])
return
}
var leftArr:Array=[]
var rightArr:Array=[]
for(var i:int=1;i<arr.length;i++) {
if(arr[i]<arr[0])
leftArr.push(arr[i])
else rightArr.push(arr[i])
}
quickSort(leftArr)
trace(arr[0])
quickSort(rightArr)
}
//快速排序
quickSort(randomArr)