用位运算,求排序变量思路方法

题目:三个变量排序输出
思路:
首先输入三个参数,X,Y,Z,要将三个参数进行大小比较在排序输出,
,x,y,z输出时的位置是不变的,所以将三个数比较后的最大值赋值给x,第二大的值赋值给Y,
最小的值就默认为z了,完成从大到小的排序输出

		function stro(x,y,z){
			
		x<y && (x^=y,y^=x,x^=y)  //排出最大值,并赋值给x
		//两种情况  x<y   x>y 
		//用逻辑与来执行判断X,Y的大小,  x>y时 ,默认x排第一位,逻辑与结果为false,不执行
		//当X<Y时,逻辑与继续进行下一步运行:(x^=y,y^=x,x^=y)用按位异或将最大值转换给第一个值(x)
		//此时的排序为:x(转换后的最大值),y(转换后的第二 的值),此时个关系为x>y
		
		y<z && (y^=z,z^=y,y^=z)   //排出y,z最大的值,并赋值给y,
         //当 y<z ,逻辑与继续进行下一步运行:(y^=z,z^=y,y^=z)用按位异或将最大值转换给第二个值(y)
         //此时个关系为y>z,转换后,z此时为最小值
         
		//y被z赋值后,此时不知道被z赋值后的y与x的大小关系,需要判定后并将最大值转换给x,此时的y为第二大,z为最小   
		x<y && (x^=y,y^=x,x^=y)   
		console.log(x,y,z)	    //打印输出测试结果    
			
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值