基本排序算法-冒泡和插入

基本排序算法

冒泡排序(Bubble Sort)
  • 基本思想

    冒泡排序是依次对数组内的两个元素进行比较,满足条件交换位置,

例:给定数组[2,1,7,9,5,8],按照从左到右,从小到大的顺序排列。

  BubbleSort=(arr:Array<number>):Array<number>=>{
    let arrs=arr;
    let length=arr.length;
    arrs.forEach((element,index) => {
     for( let i=index;i<length-1;i++){
      if(arrs[i]>arrs[i+1]){// 看起来像是满足条件交换,其实是交换
        let temp=arrs[i];
        arrs[i]=arrs[i+1];
        arrs[i+1]=temp;
      }
     }
    });
    return arrs;
  }
  • 实现

    给定一个指针,指向当前数组第一个,指针指向是当前数组循环一轮,每次循环结束之后,数组的末端都是最大的。按照顺序排列的。周而复始,循环到最后就是整个数组的排列了。

插入排序(Insertion Sort)
  • 基本思想

    不断的将尚未排好序的数插入到已经排好序的部分。

 InsertingSort=(arr:Array<number>):Array<number>=>{
    let arrs=arr;
    arrs.forEach((element,index) => {
      let current=element;
      for( let i=index-1;i>=0;i--){
        if(current<arrs[i]){
          let temp= arrs[i];
          arrs[i]=current;
          arrs[i+1]=temp;
        }
      }
     });
    return arrs;
  }

  

  • 实现

    插入排序重在插入,有一个指针,会依次指向数组的元素,

    思想是将前面的分为一堆,当前指针前面的为按照规则排好序了的,当前指针的元素用来和排好序的元素进行比较,循环排好序的元素依次和当前元素进行比对。满足则插入到此元素之前,

    总结

    • 冒泡排序得特点是一直重复得交换比对元素。小得上浮,大得下沉,最后得元素则为最大。
    • 插入排序得特点是先建立有序堆,然后拿到当前元素到有序堆比较,插入到合适位置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值