js如何将打乱的一维数组按顺序排列(不用封装好的js方法)?

JavaScript011

js如何将打乱的一维数组按顺序排列(不用封装好的js方法)?,第1张

不要JS自己的方法?

下面是一个快速排序算法的JS实现:

var arr = [1,4,2,5,7]

function QuickSort(arr){

if (arr.length <= 1){

return arr

} else if (arr.length === 2) {

if (arr[0] <= arr[1]) return arr

else return [arr[1], arr[0]]

} else {

var rndIndex = (Math.random() * arr.length) | 0

var mid = arr[rndIndex]

arr.splice(rndIndex, 1)

var left = [], right = []

for (var i=arr.length-1 i>-1 i--) {

if (arr[i] <= mid) left.push(arr[i])

else right.push(arr[i])

}

return QuickSort(left).concat(mid, QuickSort(right))

}

}

alert(QuickSort(arr))

<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/htmlcharset=UTF-8"> <title>RunJS 演示代码</title> <script> // 插入随机字符串的方法var fuck = function(str, desc) {var words = "abcdefghijklmnopqrstuvwxyz".split("") var result = "" for (var i = 0i <str.lengthi += desc) {var rand = words[Math.floor(Math.random() * words.length)].fontcolor("red") result += str.substring(i, i + desc) if (i + desc <= str.length) {result += rand }}return result }var desc = 1// 指定间隔var str = "我们的祖国是花园,花园的花朵真鲜艳。"// 字符串var result = fuck(str, desc) onload = function() {document.body.innerHTML = result }</script></head><body></body></html>