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>');

}

posted @ 2016-07-28 15:12  inno  阅读(152)  评论(0编辑  收藏  举报