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 ...
随机推荐
- .Ajax(async异步与sync同步)
异步,不会阻碍代码的执行,它会等待所有的同步代码执行完毕后,再执行输出自己的同步结果.(原生js中,只有定时器,DOM,ajax三个东西是异步的.) 同步,代码只会从上到下依次执行,只要一步出错,接下 ...
- 使用HTML制作网页
网页基本信息[编码格式] gb2312:简体中文,一般用于包含中文和英文的页面 ISO-885901:纯英文,一般用于只包含英文的页面 big5:繁体中文,一般用户带有繁体字的页面 utf-8:国际通 ...
- mysql生成主键
在mysql中,可以使用uuid 来生成主键,但是用mysql的uuid()函数 ,生成的uuid是36位的,其中包含32个字符以及4个分隔符(-), 往往这个分隔符对我们来说是没有用的,可以使用my ...
- spring scope prototype与singleton区别
1.singleton作用域 当一个bean的作用域设置为singleton, 那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配 ...
- Laravel 5.4 快速开发简书:
Laravel 5.4 快速开发简书第1章 课程介绍 介绍课程的大体脉络和课程安排 第2章 Laravel 5.4介绍 本节课会带领大家介绍laravel的各个版本历史以及讨论php框架的未来发展趋势 ...
- Anroid逆向学习从编写so到静动态调试分析arm的一次总结
Anroid逆向学习从编写so到静动态调试分析arm的一次总结 一.前言 最近跟着教我兄弟学逆向这篇教程学习Android逆向,在第七课后作业反复折腾了好几天,正好在折腾的时候对前面的学习总结一波,动 ...
- LeetCode 1169. 查询无效交易
题目链接:https://leetcode-cn.com/problems/invalid-transactions/ 如果出现下述两种情况,交易 可能无效: 交易金额超过 ¥1000或者,它和另一个 ...
- [DE] ML on Big data: MLlib
Pipeline的最终目的就是学会Spark MLlib,这里先瞧瞧做到心里有数:知道之后要学什么,怎么学. 首要问题 一.哪些机器学习算法可以并行实现? 四类算法:分类.回归.聚类.协同过滤 以及特 ...
- LeetCode 230.二叉树中第k小的元素
题目: 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 这道题在leetCode上难 ...
- filebeat相关registry文件内容解析
filebeat的registry文件中存放的是被采集的所有日志的相关信息. linux中registry中一条日志记录的内容如下 {"source":"/var/log ...