zoukankan      html  css  js  c++  java
  • 冒泡排序

    一、冒泡排序简介:

      之所以叫冒泡排序是因为使用这种排序算法时,数据值会像气泡一样从数组的一端漂浮到另一端。假设正在将一组数字按照升序排列,较大的值会浮动到数组的右侧,而较小的值则会浮动到数组的左侧。之所以会产生这种现象是因为算法会多次在数组中移动,比较相邻的数据,当左侧值大于右侧值时,将他们进行互换。

      

     1 var aArray = [9,7,5,6,4,3,3,5,9]
     2 //冒泡排序
     3 function bubbleSort(arr) {
     4     //循环一:   根据数组的长度来确定要比较的次数
     5     for (var outer = 0; outer <= arr.length - 2; outer++) {
     6         //循环二:   前一个元素与后一个元素进行比较
     7         for (var inner = 0; inner <=arr.length - 1 - outer; inner++) {
     8             if (arr[inner] > arr[inner+1]) {
     9                 swap(arr,inner,inner+1);
    10             }
    11         }
    12     }
    13     return arr;
    14 }
    15 console.log(bubbleSort(aArray)); //[3,3,4,5,5,6,7,9,9]

      解释:第二个循环的作用是元素之间进行比较,代码中每次一循环完毕之后最大的数都会在数组的最末的位值依次排放,相应的,最小的数没有一定移动到数组最前面,只是位置相应的前移了。

    第一个循环则是决定第二个循环的次数,毕竟,第二个循环每结束一次,最大的数就会出现在最末尾(按次序排列好),像是10个元素出现9次最大值就可以完成排序了。

  • 相关阅读:
    进度报告(五)
    大道至简读后感
    进度报告(四)
    进度报告(三)
    进度报告(二)
    进度报告(一)
    18.4---2出现了几次(CC150)
    17.5---珠玑妙算,四个槽,红色黄色绿色蓝色(CC150)
    17.2---#字棋(CC150)
    17.3---阶乘尾多少个0(CC150)
  • 原文地址:https://www.cnblogs.com/xxxccczzz/p/13231276.html
Copyright © 2011-2022 走看看