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>
预览效果: