<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var arr = [6,10,2,9,3,8,11,4,5];
function quickSort(data, start, end) {
// 確定要處理的數據的起始位置和結束位置
var start = start || 0;
if (end === undefined) {
end = data.length - 1;
}
// console.log(start, end);
if (start >= end) {
return;
}
// 確定一個參考值
var v = data[start];
// 確定從左到右和從右到左的下標點
var i = start;
var j = end;
//當i小于j的時候,表示i和j還沒有重合,需要執行
while (i < j) {
while (data[j] > v && i < j) {
j--;
}
data[i] = data[j];
while (data[i] < v && i < j) {
i++;
}
data[j] = data[i];
}
data[i] = v;
// console.log(data);
// console.log(i);
quickSort(data, start, i - 1);
// console.log(i);
quickSort(data, i + 1, end );
}
quickSort(arr);
console.log(arr);
</script>
</body>
</html>