JavaScript快速排序QuickSort

一、基本思想

  • 採用分治的思想,通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的數據比另一部分的數據都要小,然後再按此方法對這兩部分分別進行排序,整個排序過程可以遞歸進行

二、時空複雜度

時間複雜度 空間複雜度
最優: nlogn; 最差: n^2; 平均: nlogn nlogn

三、JavaScript源碼

輸出結果在控制檯查看

		<script type="text/javascript">
			var arr = [-2, 10, -1, 0, 5, 4, 7, 6];
			function QuickSort(arr, l, r) {
				let b = arr[l];
				let L=l,R=r;
				if (l >= r) {
					return;
				}
				while (l < r) {
					while (l < r && arr[r] >= b) {
						r--;
					}
					if (l < r) {
						arr[l] = arr[r];
					}
					while (l < r && arr[l] <= b) {
						l++;
					}
					if (l < r) {
						arr[r] = arr[l];
					}
					if (l >= r) {
						arr[l] = b;
					}
				}
				QuickSort(arr,L,r-1);
				QuickSort(arr,r+1,R);
			}
			QuickSort(arr, 0,7);
			console.log(arr);
		</script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章