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

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

一、选择排序

先来一张图解:

代码:

<!--
	选择排序?
	永远拿第一个与后面的每一个进行比较,如果第一个比后面的大,那么就把第一个与后面大的交换。
-->
<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>

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值