冒泡排序,数组颠倒,数组筛选

冒泡排序

首先需要明白思路,一个数组arr=[9,5,8,4,7,3,2],冒泡就是从数组第一个值开始与依次与之后的值比较,如果是从小到大排序,那么9先和5比较,9大就换与5交换位置,再和8比较还大,再和8交换位置,继续。。。直到2还大,那么9放在了数组的最后,下一次比较的数组变为arr=[5,8,4,7,3,2,9],这样再来一轮5和其他值比较形成arr=[4,8,3,7,2,5,9],这样继续循环直到完成从小到大排序,当然反过来也是一样的如果是从大到小,那么如果大就不换位置。

这样的话我们还需要知道怎么交换数组中两个值的位置,

就像给变量交换值一样简单,我们需要一个中间变量 比如变量a和变量b怎么交换值呢
var  a=10
var  b=5
var  c=a
a=b
b=c
这样就完成了交换

接下来实现冒泡排序:
之前的文章讲过双重for循环,这里我们将要用到它

		let arr = [9, 5, 8, 4, 7, 3, 2]
			for (let i = 0; i < arr.length - 1; i++) {//外层循环控制跑几轮
				for (let j = 0; j < arr.length - i - 1; j++) {//里面的循环 负责每轮交换的次数
				//内部交换两个变量的值 前一个和后一个元素相比较
					if (arr[j] > arr[j + 1]) {
							var temp = arr[j]
							arr[j] = arr[j + 1]
							arr[j + 1] = temp
						}
					}
				}
				console.log(arr)

颠倒数组

let arr = ['red', 'blue', 'yellow', 'white', 'black']
			let newarr = []//声明一个新数组
			for (let i = arr.length - 1; i >= 0; i--) {
			//for循环中有三个表达式,第一个控制初始值,第二个是判断循环条件,第三个是执行操作  
			//现在初始i=数组长度减1,那么i=4,结束循环的条件是 i>=0,那么i每次--
			//第一次循环 newarr[newarr.length] = arr[i] 相当于newarr[0] = arr[4]
			//第二次循环 newarr[newarr.length] = arr[i] 相当于newarr[1] = arr[3] 因为newarr中已经放进去一个值了
				newarr[newarr.length] = arr[i]
			}
			console.log(newarr)

数组筛选

var arr=[2,0,1,9,6,10,50,70,82,3]
var newarr=[]
//刚开始 newarr.lenght=0
for(let i=0;i<arr.length;i++){
 if(arr[i]>=10){//筛选条件
   //新数组索引号应该从0开始 依次递增
   newarr[newarr.length]=arr[i]
 }
}
console.log(newarr)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值