JavaScript 数组及冒泡排序

Posted 汐风雪夜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 数组及冒泡排序相关的知识,希望对你有一定的参考价值。

数组的定义方法:JS里数组可以理解为一种数据的组合,在JS里可以存多种类型的东西。

三种定义方式 设置数组变量名为arr。

1. var arr = Array();或var arr = new Array();

2. var arr = Array(‘a‘,‘b‘,‘c‘); 存入了字符串

3. var arr =[‘a‘,‘b‘,‘c‘];

对其赋值方式,以var arr = Array();为例

var arr = Array();

arr[0] = ‘a‘ ;

arr[1] = ‘b‘ ;

arr[2] = 999;

中括号内等于一个KEY,后面的就是其对应的值。

 

数组单个取值方式:以上面的设置为条件

alert(arr[2]);   可以直接取出他的值

 

数组遍历:用for循环可以遍历

arr.push(‘666‘);    ←  .push(‘666‘); 单词带括号是针对对象的方法

alert(arr.length);  ← .lengh是变量arr这个对象的属性,属性名称是长度

第一种遍历方法: 存的字符串取值不显示

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

    alert(arr[i]);

}

第二种遍历方法:存的字符串取值可以显示

for(var i in arr) {

    alert(arr[i]);

}

 

遍历查询:

var arr = [1,2,3,4,5,6,7,8]

var x = parseInt(prompt(‘请输入查询内容‘));

var status = 1;

for(var i = 0;i<arr.length;i++){      ←i是索引值,从0开始

    if(arr[i] == x)

    {

       alert(i);

       break;

    }

}

 

 

 

 

变量交换:把两个变量的值互换

变量交换必须有一个临时的定义temp,不需要赋值

 

    var a = 1;

    var b = 2;

    var temp;

   

    temp = a;     先把a放到临时的temp里

    a = b;        再把b放入a内

    b = temp;     最后把temp里的a放入b,从而达到ab内的值互换

 

冒泡排序:打乱顺序的数字进行从小到大排序的运行方式

设定数组

var arr = [3, 2, 5, 1, 4];

 

第一轮比对,从第一个数字本身开始(本身索引位置是0)跟第二个数字进行比对,并且挨个跟后面的数字循环比对

0

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

    if(arr[0] > arr[j]) {          ←自身索引位置数值大于J的索引值进行交换

       var temp;

       temp = arr[0];

       arr[0] = arr[j];

       arr[j] = temp;

    }

}

 

第二轮比对,从第二个数字本身开始(索引位置是1)跟第三个数字进行比对,并且挨个跟后面的数字循环比对

1

for(var j = 2; j < arr.length; j++) {

    if(arr[1] > arr[j]) {

       var temp;

       temp = arr[1];

       arr[1] = arr[j];

       arr[j] = temp;

    }

}

 

第三轮比对,从第三个数字本身开始(索引位置是2)跟第四个数字进行比对,并且挨个跟后面的数字循环比对

 

2

for(var j = 3; j < arr.length; j++) {

    if(arr[2] > arr[j]) {

       var temp;

       temp = arr[2];

       arr[2] = arr[j];

       arr[j] = temp;

    }

}

 

得出方式结论:

i是索引值,从自身0开始,而且小于长度,然后递增

J是需要比对的数字,他是从i后面开始进行比对的

 

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

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

       if(arr[i] > arr[j]) {

           var temp;

           temp = arr[i];

           arr[i] = arr[j];

           arr[j] = temp;

       }

    }

}

 

得出公式后最后按顺序输出即可

 

for(var x in arr){

    alert(arr[x]);

}

以上是关于JavaScript 数组及冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript-数组排序(冒泡排序)

shell脚本——数组的应用及排序算法(冒泡直接反转希尔排序)

JavaScript数组排序(冒泡排序选择排序桶排序快速排序)

一篇文章搞定javascript冒泡排序

用JavaScript实现冒泡排序法选择排序法二分法查找

冒泡排序算法的JavaScript实现