js冒泡排序

1.比較相鄰的兩個元素,如果前一個比後一個大,則交換位置。

2.第一輪的時候最後一個元素應該是最大的一個。

3.按照步驟一的方法進行相鄰兩個元素的比較,這個時候由於最後一個元素已經是最大的了,所以最後一個元素不用比較。

<!DOCTYPE html>
<html>
<head>
	<title>js冒泡</title>
	<style type="text/css">
		input{
			height: 40px;
		}
		button{
			margin: 0;
			padding: 0;
			width: 60px;
			height: 40px;
			background-color: orange;
			border: 1px solid transparent;  
			outline: none;   
		}
		#txt{
			width: 300px;
			height: 100px;
		}
	</style>
</head>
<body>
	<input type="text" name="" id="inp">
	<button id="maopao">冒泡排序</button><br><br>
	<textarea id="txt">...</textarea>

</body>
<script type="text/javascript">
	window.onload = function(){
		var oInp = document.getElementById('inp');
		var oMp = document.getElementById('maopao');
		oMp.onclick = function() {
			flag = 1;//flag用來標記某一趟排序是否發生交換
			var result = oInp.value.split(",")
			console.log(result);//打印排序前的數組
			for (var i = 0; i < result.length; i++) {//排序趟數
				var flag = 0;//flag置爲0,如果本趟排序沒有發生交換,這不會執行下一趟排序
				for (var j = 0; j < result.length-i-1; j++) {
					if (result[j]>result[j+1]) {
						temp = result[j];
						result[j] = result[j+1];
						result[j+1] = temp;
						flag = 1;//flag置爲1,表示本趟排序發生了交換
					}
				}
				if(flag==0)  break;
				var time = i+1;
				console.log('第'+time+'趟排序結果:'+result);//打印排序後的數組
			}
		}
	}
	
</script>
</html>

 

 

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