冒泡排序---javascript数组--解决思路

接受用户输入添加至数组

 function maopao(){
			var arr=new Array(8) 
			for(var n=0;n<arr.length;n++){
				arr[n]=Number(prompt('请输入第'+(n+1)+'个数'))		 //	接受用户输入添加至数组					
			}
			console.log(arr)         //生成数组

思路:
将数组元素从下标为0与下标为1,arr[i]与arr[i+1]逐次开始两两比较arr.length-r-1,共进行arr.length-1轮,每一轮比较后将排出一位最大值。

先声明外循环轮数 r的区间范围是,应该是从第一次开始,比元素个数arr.length少一次
每轮arr[i]与arr[i+1]两两逐次比较,比较完第一轮后,将把数组最大的元素排在最后
第二轮比较的时候,就不需要再去重复比较第一轮排出的下标为arr.length-1的最大的元素,排的是第二大的元素
因为arr[i]与arr[i+1]做比较,要保证下标i+1是最大下标,所以i<arr.length-2,
根据循环轮数r,与i的规律,每循环一轮,将排好一位元素,且再一轮就不需要重复排已经排好队的,依次类推,每次排好一轮之后,将arr.length-1

			 //所以将下标i的区间范围在i<arr.length-r
		     for(var r=1;r<arr.length;r++){  
 //根据循环轮数r,与i的规律,每循环一轮,将排好一位元素,且再一轮就不需要重复排已经排好队的,依次类推,每次排好一轮之后,将arr.length-r
		     	for(var i=0;i<arr.length-r;i++){                  
		     		if(arr[i]>arr[i+1]){                         
		     			                                             
		     		var temp;              //满足条件,两两交换位置                           
		     		temp=arr[i];            //不满足则跳出后,保持不变继续下一轮
		     		arr[i]=arr[i+1];
		     		arr[i+1]=temp;			     		
		     		}			     			     		
		     	}
		     }	console.log(arr)	
		 }			

在这里插入图片描述在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值