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 ...
随机推荐
- WEB-UI自动化测试实践
一.设计背景 随着IT行业的发展,产品愈渐复杂,web端业务及流程更加繁琐,目前UI测试仅是针对单一页面,操作量大.为了满足多页面功能及流程的需求及节省工时,设计了这款UI 自动化测试程序.旨在提供接 ...
- React-router总结
版本 v3和v4有一些差距: https://blog.csdn.net/qq_35484341/article/details/80500237 以下的总结,都是基于V4的 官方文档:https:/ ...
- 可见性有序性,Happens-before来搞定
写在前面 上一篇文章并发 Bug 之源有三,请睁大眼睛看清它们 谈到了可见性/原子性/有序性三个问题,这些问题通常违背我们的直觉和思考模式,也就导致了很多并发 Bug 为了解决 CPU,内存,IO 的 ...
- 右键没有新建word选项
两类解决办法 一. 1. 新建一个txt文本,并插入如下内容: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.doc] @=&quo ...
- The 10 Most Important Linux Commands/10个最经常使用的命令行
1. ls 命令:to show all of the major directiories filed under a given file system. for example: ls /app ...
- setuptools的安装
Python 2.x: sudo apt-get install python-setuptools (python2.x版本执行此命令) Python 3.x: su ...
- 05 (OC) 二叉树 深度优先遍历和广度优先遍历
总结深度优先与广度优先的区别 1.区别 1) 二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归的通用做法是采用队列. 2) 深度优先遍历:对每一个可能的分支路径深入到不能再深入 ...
- [VB.NET Tips]再谈字符串连接之内置池
CLR自动维护一个称为"内置池"(暂存池)(intern pool)的表,在编译时此表包含程序中声明的每个唯一的字符串常量的单个实例,以及以编程方式创建的String类的任何唯一实 ...
- jvm对象内存分配
一.jvm简单结构图 1.jvm内存对象分配整体流程: 1.类加载子系统和方法区 类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间.除了类的信息外, ...
- AJAX基础内容
1.什么是ajax?为什么要使用ajax? ajax是Asynchronous JavaScript and XML ,也称为创建交互式网页应用开发技术. 2.为什么采用ajax 1)通过异步交互,提 ...