选择排序与冒泡排序的基本写法

版权声明:原创文章,未经允许不得转载!!! https://blog.csdn.net/halo1416/article/details/81952789

记录一下选择排序与冒泡排序的基本写法:

一、选择排序

先来一张图解:

代码:

<!--
	选择排序?
	永远拿第一个与后面的每一个进行比较,如果第一个比后面的大,那么就把第一个与后面大的交换。
-->
<script type="text/javascript">
	var arr=[2,5,8,1,4];
	console.log(arr)
	/*
		//思路:拿第一与后面的比较,如果第一个比后面的大就交换
		//第1次
		for (var i = 1; i < arr.length; i++) {
			if(arr[0]>arr[i])
			{
				var temp=arr[0];
				arr[0]=arr[i];
				arr[i]=temp;
			}
		}
		console.log(arr);
			
		//第2次
		for (var i = 2; i < arr.length; i++) {
			if(arr[1]>arr[i])
			{
				var temp=arr[1];
				arr[1]=arr[i];
				arr[i]=temp;
			}
		}
		console.log(arr);
			
		//第3次
		for (var i = 3; i < arr.length; i++) {
			if(arr[2]>arr[i])
			{
				var temp=arr[2];
				arr[2]=arr[i];
				arr[i]=temp;
			}
		}
		console.log(arr);
			
		//第4次
		for (var i = 4; i < arr.length; i++) {
			if(arr[3]>arr[i])
			{
				var temp=arr[3];
				arr[3]=arr[i];
				arr[i]=temp;
			}
		}
		console.log(arr);
	*/
			
	//选择排序的终极写法
	for (var k = 0; k < arr.length-1; k++) {
		for (var i = k+1; i < arr.length; i++) {
			if(arr[k]<arr[i])
			{
				var temp=arr[k];
				arr[k]=arr[i];
				arr[i]=temp;
			}
		}
	}
    console.log(arr);
</script>

二、冒泡排序

图解:

代码:

<script type="text/javascript">
	//冒泡排序
	//永远拿相邻的连个元素进行比较,并交换位置(交换他们之间的值)
	var arr=[2,5,8,1,4,1,3,5,79,11,1,3,5,7,24,32,25,48];
	console.log(arr);
			
	/*过程写法
		//第一次冒泡
		for (var i = 0; i < arr.length-1; i++) {
			if(arr[i]>arr[i+1])
			{
				var temp=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=temp;
			}
		}
		console.log(arr);
			
			
		//第二次冒泡
		for (var i = 0; i < arr.length-2; i++) {
			if(arr[i]>arr[i+1])
			{
				var temp=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=temp;
			}
		}
		console.log(arr);
			
		//第三次冒泡
		for (var i = 0; i < arr.length-3; i++) {
			if(arr[i]>arr[i+1])
			{
				var temp=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=temp;
			}
		}
		console.log(arr);
			
		//第四次冒泡
		for (var i = 0; i < arr.length-4; i++) {
			if(arr[i]>arr[i+1])
			{
				var temp=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=temp;
			}
		}
		console.log(arr);
	*/
			
	//终极写法
	//比较的次数问题
	for (var j = 1; j < arr.length; j++) {
		//arr[i]
		//document.write(i+"<br/>");
		for (var i = 0; i < arr.length-j; i++) {
			if(arr[i]<arr[i+1])
			{
				var temp=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=temp;
			}
		}
	}
	console.log(arr);
</script>

文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出

猜你喜欢

转载自blog.csdn.net/halo1416/article/details/81952789