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 aa(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);
  aa(data);
  console.log(‘after:‘+data);

时间: 2024-12-17 14:19:18

JS中的排序算法(-)冒泡排序的相关文章

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

冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端 维基百科:点击打开链接 [cpp] view plain copy /* 用选择法对10个数进行排序 */ #include<stdio.h> void main() { int i,j,

排序算法—冒泡排序

*/--> 排序算法-冒泡排序 Table of Contents 1 问题描述 2 冒泡排序(Bubble) 2.1 冒泡排序(一) 2.2 冒泡排序(二) 2.3 冒泡排序(三) 2.4 冒泡排序(四) 3 阅读参考 1 问题描述 引子 排序是数据结构中十分重要的一章,排序算法有很多种,一直没时间整理而且很多排序算法理解的也不是很透彻.希望通过这次整理吃透吧! 排序算法十分多,故分篇进行整理. 说明 本文重点是理解排序算法,而不是完整的程序,所以每节都只有具体排序算法的接口.没有完整的源代码

Java中各种排序算法

//插入排序:package org.rut.util.algorithm.support; import org.rut.util.algorithm.SortUtil;/** * @author treeroot * @since 2006-2-2 * @version 1.0 */public class InsertSort implements SortUtil.Sort{ /** (non-Javadoc) * @see org.rut.util.algorithm.SortUtil

Java中冒牌排序算法

冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面. 即首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数.如此下去,直至最终

经典排序算法 - 冒泡排序Bubble sort

 原文出自于 http://www.cnblogs.com/kkun/archive/2011/11/23/bubble_sort.html 经典排序算法 - 冒泡排序Bubble sort 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子 例子为从小到大排序, 原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 | 第一趟排序(外循环) 第

STL笔记(6)标准库:标准库中的排序算法

STL笔记(6)标准库:标准库中的排序算法 标准库:标准库中的排序算法The Standard Librarian: Sorting in the Standard Library Matthew Austern http://www.cuj.com/experts/1908/austern.htm?topic=experts 用泛型算法进行排序    C++标准24章有一个小节叫“Sorting and related operations”.它包含了很多对已序区间进行的操作,和三个排序用泛型

STl中的排序算法

本文转自:STl中的排序算法 1. 所有STL sort算法函数的名字列表: 函数名    功能描述 sort   对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_sort 对给定区间所有元素部分排序 partial_sort_copy    对给定区间复制并排序 nth_element 找出给定区间的某个位置对应的元素 is_sorted               判断一个区间是否已经排好序 partition     使得符合某个条件的元

JS写的排序算法演示

看到网上有老外写的,就拿起自已之前完成的jmgraph画图组件也写了一个.想了解jmgraph的请移步:https://github.com/jiamao/jmgraph 当前演示请查看:http://graph.jm47.com/example/sort.html <!doctype html> <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="co

JS实现常用排序算法—经典的轮子值得再造

关于排序算法的博客何止千千万了,也不多一个轮子,那我就斗胆粗制滥造个轮子吧!下面的排序算法未作说明默认是从小到大排序. 1.快速排序2.归并排序3.冒泡排序4.选择排序(简单选择排序)5.插入排序(直接插入排序)6.希尔排序二分查找 1.快速排序 为什么把快排放在最前面呢,因为传说Chrome中数组的sort方法默认采用的就是快排. 算法思想: (1)在数据集之中,选择一个元素作为"基准"(pivot). (2)所有小于"基准"的元素,都移到"基准&quo