您的位置:首页 > 其它

每日算法1:快速排序

2017-03-17 13:09 176 查看
目标:排序

算法思路分析:

思想: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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: