排序-冒泡排序、选择排序、补充数组去重

50 阅读1分钟

排序

  • 排序,就是把一个乱序的数组,通过我们的处理,让他变成一个有序的数组

冒泡排序

  • 对相邻的两个数进行比较,如果第一个比第二个大,则交换他们两个
  • 对每队相邻的元素重复同样的工作,从第一队一直比较到最后一对,做完后,最后的数字会是最大
  • 重复前面的操作,除开最后一个元素
  • 重复对越来越少的元素重复之前的操作,直到没有元素需要比较
var arr=[98,78,59,65,90]
var n=arr.length
for(var i=0;i<n-1;i++){
    for(var j=0;j<n-1-i;j++){
        if(a[i]>a[i+1]){
            var temp=arr[1]
            arr[i]=arr[i+1]
            a[i+1]=temp
            }
        }
  }
        

image.png

选择排序

  • 从小到大排序:
  1. 外层循环n-1次
  2. 选定第一个数为最小值,下标为minIndex,
  3. 依次与之后的数字比较,如果minIndex数更大,则将minIndex下标赋给更小的数
  4. 直到比完所有的数,将minIndex下标的数放在首位
  5. 接着从第二个数开始比较,重复上面的操作。

image.png image.png

image.png

数组去重

  • 去掉数组中重复的元素

方法一:利用indexOf或者includes实现

思想:

  1. 定义一个空数组[] ,用于存储去重数组
  2. 遍历数组
  3. 判断新数组中有无遍历的这个元素,如果没有,就push进去

image.png

image.png

方法二:利用双重for循环和splice实现

思想:

  1. 外层循环n-1次
  2. 内层循环实现判断两个数是否相同,如果相同,使用splice方法裁掉重复元素
  3. 内层循环变量--,避免漏掉重复元素
  4. 最后输出数组。

image.png