深入淺出JS冒泡排序

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			/* 自定義一個冒泡排序函數 */
			var maxNum ={
				maxNumber: function() {
					//有幾個數需要比較,2個數比較1次,3個數比較兩次,n個數比較n-1次,
					//所以循環條件是arguments.length - 1。
					for (var i = 0; i < arguments.length - 1; i++) {
						//每個數需要比較幾次,第1個數比較數組長度-1次,第2個數比較數組長度-2次,
						//第n個數比較數組長度-n,又因爲數組下標從0開始,所以循環條件是arguments.length - 1 - i。
						//每一輪比較都使得當前循環內最大的一個數移到數組下標arguments.length - 2 - i的位置。
						for (var j = 0; j < arguments.length - 1 - i; j++) {
							if (arguments[j] > arguments[j + 1]) {
								//臨時變量接收大的值;
								var temp = arguments[j];
								//把小的值放到前面;
								arguments[j] = arguments[j + 1];
								//把大的值放到後面。
								arguments[j + 1] = temp;
							}
						}
					}
					return arguments;
				}
			}
			//調用方法
			var a=maxNum.maxNumber(12,10,71,18);
			for (var i = 0; i < a.length; i++) {
				console.log('循環輸出數組元素:' + a[i]);
			}
		</script>
	</head>
	<body>
	</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章