JS中的排序算法-冒泡排序解析
冒泡排序算法
例子: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中的排序算法-冒泡排序解析的更多相关文章
- JS中常见排序算法详解
本文将详细介绍在JavaScript中算法的用法,配合动图生动形象的让你以最快的方法学习算法的原理以及在需求场景中的用途. 有句话怎么说来着: 雷锋推倒雷峰塔,Java implements Java ...
- C语言中的排序算法--冒泡排序,选择排序,希尔排序
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ...
- [ 转载 ] js十大排序算法:冒泡排序
js十大排序算法:冒泡排序 http://www.cnblogs.com/beli/p/6297741.html
- 使用 js 实现十大排序算法: 冒泡排序
使用 js 实现十大排序算法: 冒泡排序 冒泡排序 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
- Java中的排序算法(2)
Java中的排序算法(2) * 快速排序 * 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists). * 步骤为: * 1. 从数 ...
- 排序算法--冒泡排序(Bubble Sort)_C#程序实现
排序算法--冒泡排序(Bubble Sort)_C#程序实现 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困 ...
- 数据结构和算法(Golang实现)(19)排序算法-冒泡排序
冒泡排序 冒泡排序是大多数人学的第一种排序算法,在面试中,也是问的最多的一种,有时候还要求手写排序代码,因为比较简单. 冒泡排序属于交换类的排序算法. 一.算法介绍 现在有一堆乱序的数,比如:5 9 ...
- Java 排序算法-冒泡排序及其优化
Java 排序算法-冒泡排序及其优化 什么是冒泡排序 基本写法 优化后写法 终极版本 源码及测试 什么是冒泡排序 这里引用一下百度百科上的定义: 冒泡排序(Bubble Sort),是一种计算机科学领 ...
- js 十大排序算法 All In One
js 十大排序算法 All In One 快速排序 归并排序 选择排序 插入排序 冒泡排序 希尔排序 桶排序 堆排序(二叉树排序) 基数排序 计数排序 堆排序(二叉树排序) https://www.c ...
随机推荐
- Python---环境以及编辑器的使用的学习
1.搭建python的环境 官网下载Python的安装程序,记住一点在安装的时候点一下下面的 Add Python 3.5 to PATH 它会自动给你把安装的python的环境加入到计算机的环境变量 ...
- spark与mapreduce的区别
spark是通过借鉴Hadoop mapreduce发展而来,继承了其分布式并行计算的优点,并改进了mapreduce明显的缺陷,具体表现在以下几方面: 1.spark把中间计算结果存放在内存中,减少 ...
- pt工具校验主从数据一致性之dsns方式
mysql主从数据一致性校验,常用的方法是Percona-Toolkit的组件pt-table-checksum,这东西怎么用网上一大堆,就不啰嗦了.主要说一下通过dsns方式发现从库的一种方式. p ...
- MySQL性能调优与架构设计(简朝阳)
https://www.cnblogs.com/crazylqy/category/625963.html
- 041 模块5-jieba库的使用
目录 一.jieba库基本介绍 1.1 jieba库概述 1.2 jieba库的安装 1.3 jieba分词的原理 二.jieba库使用说明 2.1 jieba分词的三种模式 2.2 jieba库常用 ...
- Java Web总结(二)-- 上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接 ...
- Kubernetes v1.16 发布 | 云原生生态周报 Vol. 20
作者:心贵.进超.元毅.心水.衷源.洗兵 业界要闻 Kubernetes v1.16 发布 在这次发布中值得关注的一些特性和 Feature: CRD 正式进入 GA 阶段: Admission We ...
- 字节输出流OutputStream
1.OutputStream是输出字节流的超类. import java.io.File; import java.io.FileOutputStream; import java.io.IOExce ...
- 手把手教你搭建Jenkins实现自动化部署Jar
centeros7 安装配置环境jdk1.8 1.先卸载centeros自带jdk rpm -qa | grep openjdk 查询出来的自带的openjdk 2.删除 rpm -e --nodep ...
- logback配置方法
logback是一个通用可靠.快速灵活的日志框架,它替代了log4j,和slf4j组成新的日志系统. slf4j是一个日志门面,为其他各种日志框架提供了统一的接口,代码中使用slf4j可以避免对某一种 ...