快排简要介绍

<!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>

posted @ 2017-06-06 23:12  catEatBird  阅读(252)  评论(0编辑  收藏  举报