数组相关重要面试题 数组去重 与 冒泡算法

​1、数组去重

<!-- 数组相关重要面试题 -->
		<script>
			// 面试题---数组去重
			{
				let a = [1,2,3,3,3,6,8,9,6,3,2,1,6,4,4,5,4]
				
				// console.log(a.indexOf('3'))
				
				// 申明函数
				function removal(a){
					// 临时数组
					var temp = [];
					// 遍历
					// 在遍历的过程中 用数组对象的indexOf()检索 
					for(let i=0; i<=a.length-1; i++){
						
						
						// console.log(i)
						
						// 每一项的输出 都会被显示出来
						// i 出来的是索引值
						// a[i]--是索引值所对应的数值
						console.log(i+'=====>' +a[i])
						
						// 去数组中检索当前这一项内容的索引值
						// 只要重复的那个数值 出现的索引值, 都是第一次出现时的索引值
						console.log(a.indexOf(a[i]))
						
						// 如果 a.indexOf(a[i]) 与 i 想等时,
						// 则把这个数值拿出来放到临时数组内
						if(a.indexOf(a[i]) == i){
							temp.push(a[i])
						}
					}
					console.log(temp)
					return temp;
				}
				// 调用执行函数
				removal(a)
			}
		</script>

分析:

分析:

预览效果:

2、冒泡算法

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。

算法步骤:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。


 

<!-- 面试题--- 冒泡算法,编写实现 -->
		<script>
			// 冒泡算法
			{
				let a = [2,4,5,3,15,46,36,47,48,50]
				console.dir('原数组')
				console.log(a)
				
				function bSort(a){
					// 定义临时变量
					var temp = null;
					// 遍历
					// 外层for,遍历 数组中的 每一项内容  //'趟'数
					for(var i=0; i<=a.length-1; i++){
						console.log(a[i])
						
						// 内层for循环
						for(var j=0; j<=a.length-1-i; j++){
							console.log('内层for遍历到的内容是:'+a[j])
							
							// 两两比较大小
							// 前一项j 
							// 后一项j+1
							// 20 > 4
							if(a[j] > a[j+1]){
								// 1、把后一项内容存到临时变量中
								temp = a[j+1];
								///2、让前一项内容放到 后一项内容中去
								a[j+1] = a[j];
								// 3、把后一项内容 放到前一项内容中去
								a[j] = temp;
							}
							
							
						}
						
					}
					console.log(a)
					return a
				}
				 // 调用函数
				bSort(a)
			}
		</script>

预览效果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值