- 冒泡理解
冒泡排序就是将一个数组,以冒泡的形式进行大小的判断处理
- 案例一
假设一个棍子上挂着一排不同高度的水果,让一个人跳着摘水果,他每次的跳跃高度都会比上次低,不会比上一次高,那么摘完棍子上的所有水果需要几个人
// 声明一个数组
var arr = [50,5,88,19,10,20,5,6,54]
// 循环这个数组
for(let i = 0; i<arr.length; i++){
// 声明一个变量,获取当前第i个数据
let arrOne = arr[i]
// 第二次循环数组
for(let j =i+1; j<arr.length; j++){
// 当arrOne大于数组第j项的时候,重新将数组第i项重新赋值为第j项,删除第j项,
// 删除过后下标会提前一位,因此j--
if(arrOne>arr[j]){
arrOne = arr[j]
arr.splice(j,1)
j--
}
}
index = arr.length
}
- 案例二
对一个数组进行循环,两个数字相加的数值,和数组中任何一个值相等时,打印一个true
//
// 声明一个数组
let arr2 = [1,2,50,3,5]
// 循环这个数组
for(let i=0; i<arr2.length;i++){
// 第二次循环,从下标一开始
for(let j=1;j<arr2.length;j++){
// 数组第i个加上第j个的和
var tow = arr2[i]+arr2[j]
// 判断数组中有没有包含两者之间的和
if(arr2.includes(tow)){
// 打印一个true
console.log(true);
}
}
}
- 优缺点
优点:比较简单,空间复杂度较低,是稳定的
缺点:时间复杂度太高,效率不好