美文网首页
冒泡排序(BubbleSort)

冒泡排序(BubbleSort)

作者: 神奇的少年 | 来源:发表于2017-03-05 01:50 被阅读0次

BubbleSort

先说说这个最慢的排序吧,很好理解,从字面上来看排序的方式就像冒泡一样,所以是最慢的


解:
(1)比较相邻的两个元素,如果前面的比后面的大就交换位置
(2)那么第一轮下来,最后一个就是最大的
(3)再按照第一步,这时候就不用比较上最后一个了,所以要每次减掉最后一个最大的值再进行下一轮比较

好了,聪明的你已经知道怎么写了

1.定义一个方法,需要传入数组比较吧

function BubbleSort(arr){}

2.遍历数组,因为每次最后一个都是最大的,所以要length-1,还要拿出相邻元素比较,所以再遍历一遍取出相邻元素

function BubbleSort(arr){
  for(var i=0;i<arr.length-1;i++){
    for(var j=0;j<arr.length-i-1;j++){
      
    }
  }
}

3.现在就判断一下,如果前面比后面大,就交换位置

function BubbleSort(arr){
  for(var i=0;i<arr.length-1;i++){
    for(var j=0;j<arr.length-i-1;j++){
      if(arr[j]>arr[j+1]){
        var swap=arr[j];
        arr[j]=arr[j+1];//后移
        arr[j+1]=swap;//前后交换了
      }
    }
  }
};

完工!下面我们再看一个do-while的写法

function BubbleSort(arr){
  var swap;
  do{
    swap=false;
    for(var i=0;i<arr.length-1;i++){
      if(arr[i]>arr[i+1]){
        var temp=arr[i];
        arr[i]=arr[i+1];
        arr[i+1]=temp;
        swap=true;
      }
    }
  }while(swap);
};

这样写经过测试,效率稍微高了一点点.可谓能优化则优化
第一种写法经测试平均运行时间是:0.03966ms
第二种写法经测试平均运行时间是:0.04166ms

刚刚想起了时间复杂度,空间复杂度,后面补上!

相关文章

  • 2019-08-11

    Javascript中常用几种基础算法 1 排序-冒泡排序 //冒泡排序 function bubbleSort...

  • IOS 算法(冒泡排序、系统排序API、二分法)

    冒泡排序 - (void)bubbleSort { NSArray* nums =@[@(8),@(3),@(4)...

  • 冒泡排序–排序算法

    /* * 冒泡排序 */ public class BubbleSort { public static void...

  • 冒泡排序(BubbleSort)

    BubbleSort 先说说这个最慢的排序吧,很好理解,从字面上来看排序的方式就像冒泡一样,所以是最慢的 解:(1...

  • BubbleSort—冒泡排序

    冒泡排序 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的...

  • BubbleSort(冒泡排序)

    顾名思义,冒泡排序法就是让数组元素像水中的气泡一样逐渐上浮,进而达到排序的目的。下面算法便是利用冒泡法将数列排列为...

  • 冒泡排序(BubbleSort)

    1.基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。 2.过程: 比较相邻的两个数据,如果第二个数小,就交...

  • BubbleSort冒泡排序

    /* @Author: sumBorn @Date: 2022-02-23 21:57:10 @Descripti...

  • javascript中常用的排序方法:

    1.冒泡排序: function bubbleSort(arr) { for(var i = 0; ...

  • 设计模式

    一、冒泡排序 publicclass BubbleSort { public static void Bubble...

网友评论

      本文标题:冒泡排序(BubbleSort)

      本文链接:https://www.haomeiwen.com/subject/reksgttx.html