zoukankan      html  css  js  c++  java
  • javascript--算法

    程序分为两大部分:

    1.数据结构(业务逻辑) 

    2.算法

    a.  数组排序:

    1.冒泡排序:

    升序:从小到大

    降序:从大到小

    eg:  定义一个数组a[ 2,6,4,8,3,9,5,1,10,0] ,按其升序进行排列

    冒泡排序法:

    var a = [ 2, 6, 4, 8, 3, 9, 5, 1, 10, 0 ];

    for ( var  i = 0; i < a.length - 1; i++){

      for( var  j = 0; j < a.length - 1 - i; j++){

        if( a[j] > a[j + 1]) {

          var temp = a[j];

          a[j] = a[j + 1];

          a[j + 1] = temp;
        }

      }

    }

    for ( var i = 0; i < a.length; i++) {

      document.write(a[i] + '<br>');

    }

    选择排序法

    var a = [ 2, 6, 4, 8, 3, 9, 5, 1, 10, 0 ];

    for ( var i = 0; i < a.length - 1; i++) {

      min = a[i];

      index = i;

      for ( var j = i + 1; j < a.length; j++) {              

        if(min > a[j]) {

          min = a[j];

          index = j;

        }

      }

      if(i != index) {

        var temp = a[i];

        a[i] = a[index];

        a[index] = temp;

      }

    }

    for( var i = 0; i < a.length; i++) {

      document.write(a[i] + '       ');

    }

    //或者调用 sort() 方法

    a.sort();

    使用sort()方法需要注意的是  sort()方法是根据字符串大小进行比较的,若要按照数值的大小对数字进行排序

    ,就必须使用一个排序函数

     eg:  定义一个数组a[ 2,6,4,8,3,9,5,1,10,0] ,使用sort()按其升序进行排列

    var a = [ 2, 6, 4, 8, 3, 9, 5, 1, 10, 0 ];

    function sortNum( b, c ){

      return b - c;

    }

    /*若 b 小于 c,在排序后的数组中 b 应该出现在 c 之前;

    若 b 等于 c,则返回 0;

    若 b 大于 c, 则返回一个大于 0 的值;

    */

    a.sort(sortNum);

    for ( var i = 0; i < a.length; i++ ){

      document.write( a[i] + '<br>');

    }

    定义一个数组a[ 2,6,4,8,3,9,5,1,10,0] ,按其降序进行排列

    var a = [ 2, 6, 4, 8, 3, 9, 5, 1, 10, 0 ];

    for ( var  i = 0; i < a.length - 1; i++){

      for( var  j = 0; j < a.length - 1 - i; j++){

        if( a[j] < a[j + 1]) {

          var temp = a[j];

          a[j] = a[j + 1];

          a[j + 1] = temp;
        }

      }

    }

    for ( var i = 0; i < a.length; i++) {

      document.write(a[i] + '<br>');

    }

    //或者调用 reverse() 方法 

    使用 reverse() 方法需要注意的是 它并没有将数组元素进行降序排序,只是将数组元素进行反转;即数组元素头部-->尾部,数组元素尾部-->头部

    若要实现降序,可以先降数组元素进行升序排列,再调用 reverse() 方法;

    eg:定义一个数组a[ 2,6,4,8,3,9,5,1,10,0] ,使用 reverse() 方法按其降序进行排列

    var arr = [ 2, 6, 4, 8, 3, 9, 5, 1, 10, 0 ];

    function sortNum( a, b){

      return a - b;

    }

     arr.sort(sortNum);

    arr.reverse();

    for( var i = 0; i < arr.length; i++) {

      document.write(arr[i] + '<br>');

    }

  • 相关阅读:
    【转】PHP foreach 小结
    【转】div,p,span,ul,li,dl,dt,dd,a,img,h,strong,em用法
    【转】网页制作中的CSS+DIV:dl,dt,dd分别表示什么意思啊?请说明啊,谢谢有什么功能?
    【转】[教程] CSS入门3:如何插入CSS样式
    PHP输出多个空格
    【转】浅谈HTTP中Get与Post的区别
    HDOJ 2433 Counter Strike 逆序对 线段树
    hdu 4193 Nonnegative Partial Sums 单调队列
    vijos 1750 建房子 单调队列
    poj 2155 Matrix 二维树状数组
  • 原文地址:https://www.cnblogs.com/zhao12354/p/5714884.html
Copyright © 2011-2022 走看看