快速排序

时间:2019-01-19
本文章向大家介绍快速排序,主要包括快速排序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>

	<body>

	</body>
	<script>
		//快速排序
		// 函数关键字   
		// function  函数名(参数1,参数2.....){
		// code 函数代码
		// }
		var array = [34, 5, 243, 63, 12, 34, 12, 333, 23, 509, 22];
		var result = quickSort(array); //声明函数
		console.log(result); //输出

		function quickSort(array) {

			// 要执行拆分数组的操作 需要先判断是否有必要(length>1)
			if(array.length <= 1) {
				// 返回数组  函数内部return之后的代码不会执行
				return array;
			}
			// 取一个基数
			var base = array[0];
			// 存放比base小的数
			var smallArray = [];
			// 存放比base大的数
			var bigArray = [];
			// array.length-1数组下标永远比数组元素个数少1个
			for(var i = 1; i < array.length; i++) {
				if(base > array[i]) {
					smallArray.push(array[i]);
				} else {
					bigArray.push(array[i]);
				}
			}
			var resultSmallArray = quickSort(smallArray);
			var resultBigArray = quickSort(bigArray);
			resultSmallArray.push(base); // 将基数拼接到smallArray数组的尾部
			var result = resultSmallArray.concat(resultBigArray); // 将2个数组拼到一起
			return result; //返回
		}
	</script>

</html>