冒泡排序算法

例子:10,8,9,6,4,20,5  从小到大排序

第一轮  1)10>8  交换数据 得到:8,10,9,6,4,20,5

2)10>9  交换数据 得到:8,9,10,6,4,20,5

3)10>6  交换数据 得到:8,9,6,10,4,20,5

4)10>4  交换数据 得到:8,9,6,4,10,20,5

5)10<20  不交换数据 得到:8,9,6,4,10,20,5

6)20>5  交换数据 得到:8,9,10,6,4,5,20

结果:8,9,10,6,4,5,20

第二轮  1)8<9  不交换数据 得到:8,9,10,6,4,5,20

2)9<10  不交换数据 得到:8,9,10,6,4,5,20

3)10>6  交换数据 得到:8,9,6,10,4,5,20

4)10>4  交换数据 得到:8,9,6,4,10,5,20

5)10>5  交换数据 得到:8,9,6,4,5,10,20

结果:8,9,6,4,5,10,20

第三轮  1)8<9  不交换数据 得到:8,9,6,4,5,10,20

2)9>6  交换数据 得到:8,6,9,4,5,10,20

3)9>4  交换数据 得到:8,6,4,9,5,10,20

4)9>5  交换数据 得到:8,6,4,5,9,10,20

结果:8,6,4,5,9,10,20

第四轮  1)8>6  交换数据 得到:6,8,4,5,9,10,20

2)8>4  交换数据 得到:6,4,8,5,9,10,20

3)8>5  交换数据 得到:6,4,5,8,9,10,20

结果:6,4,5,8,9,10,20

第五轮  1)6>4  交换数据 得到:4,6,5,8,9,10,20

2)6>5 交换数据 得到:4,5,6,8,9,10,20

结果:4,5,6,8,9,10,20

第六轮  1)4<5  不交换数据 得到:4,5,6,8,9,10,20

分析一下得出JS冒泡排序算法如下

function sort(data){
  var i=0;
  while(i<data.length-1){
    for(var j=0;j<data.length-i-1;j++){
      if(data[j]>data[j+1]){
        var x=data[j];
        data[j]=data[j+1];
        data[j+1]=x;
      }
    }
    i++;
  }
}
  var data=[10,8,9,6,4,20,5];
  console.log('before:'+data);
  sort(data);
  console.log('after:'+data);

JS中的排序算法-冒泡排序解析的更多相关文章

  1. JS中常见排序算法详解

    本文将详细介绍在JavaScript中算法的用法,配合动图生动形象的让你以最快的方法学习算法的原理以及在需求场景中的用途. 有句话怎么说来着: 雷锋推倒雷峰塔,Java implements Java ...

  2. C语言中的排序算法--冒泡排序,选择排序,希尔排序

    冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ...

  3. [ 转载 ] js十大排序算法:冒泡排序

    js十大排序算法:冒泡排序  http://www.cnblogs.com/beli/p/6297741.html

  4. 使用 js 实现十大排序算法: 冒泡排序

    使用 js 实现十大排序算法: 冒泡排序 冒泡排序 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

  5. Java中的排序算法(2)

    Java中的排序算法(2) * 快速排序 * 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists). * 步骤为: * 1. 从数 ...

  6. 排序算法--冒泡排序(Bubble Sort)_C#程序实现

    排序算法--冒泡排序(Bubble Sort)_C#程序实现 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困 ...

  7. 数据结构和算法(Golang实现)(19)排序算法-冒泡排序

    冒泡排序 冒泡排序是大多数人学的第一种排序算法,在面试中,也是问的最多的一种,有时候还要求手写排序代码,因为比较简单. 冒泡排序属于交换类的排序算法. 一.算法介绍 现在有一堆乱序的数,比如:5 9 ...

  8. Java 排序算法-冒泡排序及其优化

    Java 排序算法-冒泡排序及其优化 什么是冒泡排序 基本写法 优化后写法 终极版本 源码及测试 什么是冒泡排序 这里引用一下百度百科上的定义: 冒泡排序(Bubble Sort),是一种计算机科学领 ...

  9. js 十大排序算法 All In One

    js 十大排序算法 All In One 快速排序 归并排序 选择排序 插入排序 冒泡排序 希尔排序 桶排序 堆排序(二叉树排序) 基数排序 计数排序 堆排序(二叉树排序) https://www.c ...

随机推荐

  1. 1张影射过往的图片,如何勾起往事的回忆,.CORE其实可以是这样的吗?

    看到某人写了一个流程分析貌似可以披云见日,形似之余好像回忆可以相得益彰 然后我刚刚不小心发布了,当然要准备100字的说明,这个字应该怎么打好呢,不知不觉打了好多字,我好难啊 首先这是正常情况看不到的图 ...

  2. “真”pandas“假”sql

    这篇博客利用了 pandas 对数据像 sql 一样去处理. 读取测试数据 import pandas as pd import numpy as np url = 'https://raw.gith ...

  3. 关于Elasticsearch文档的描述以及如何操作文档的详细总结

    文档 什么是文档 在大多数应用中,多数实体或对象可以被序列化为包含键值对的 JSON 对象. 一个 键 可以是一个字段或字段的名称,一个 值 可以是一个字符串,一个数字,一个布尔值, 另一个对象,一些 ...

  4. Linux系统卡死后紧急处理

    前言:Linux系统卡死了的情况有很多,最常见的是系统负载过高导致的.还可以运行内存耗用极大的程序(如虚拟机),也会迅速提升系统负载.注意:不能再试图依赖任何图形界面的东西,如 Gnome的系统监视器 ...

  5. Winform中设置Dialog的显示位置居中

    场景 点击按钮使窗体以Dialog的方式显示,即弹窗. //声明窗体对象 ChartOption chartOption = new ChartOption(); //显示Dialog chartOp ...

  6. Winforn中怎样在窗体中打开另一个窗体

    场景 在Winform的窗体A中打开另一个窗体B. 实现 //打开新的窗体 CurveCompare cc = new CurveCompare(); cc.Show(); 效果 以上代码的实现参照: ...

  7. 花果山第一届猿类分级考试实录--Talk is cheap,Show me the code

    本故事纯属虚构,如有雷同,纯属巧合! 故事背景 悟空师徒4人取经回来后,因不耐收到管教,就回到了花果山,带领一帮猴子猴孙逍遥自在的过日子,奈何因在阎王殿里将生死薄中的猴子猴孙的名字都划去了,猴子猴孙是 ...

  8. 学生管理系统——ArrayList集合

    此学生管理系统利用了集合ArrayList实现了对学生的增删改查:利用数组中的方法实现分数排序:运用String类的equals实现登录功能的字符串比较. 管理员类: package data; pu ...

  9. php装上sqlserver驱动后仍然显示Call to undefined function sqlsrv_connect()问题

    今天老师要求本来的php+mysql改为php+sqlserver,在网上搜索了相应的教程,说是“需要下载安装Microsoft Drivers for PHP for SQL Server驱动”,下 ...

  10. django模型层之多表关系

    一. 多表操作 数据库表关系之关联字段与外键约束 一对多 book(多) publish(一) 查询<<水浒传>>这本书出版社的地址: select publish_id fr ...