前端学习

81 阅读3分钟

博学谷it学习技术支持

进入js的学习已经又一周多了,这周学到的内容很多很多,而且感觉也很杂,需要慢慢吸收记忆

今天就简单说说数组和冒泡排序吧,说真的我老把数组记成数列。。。

数组

数组是一个固定长度的存储相同数据类型的数组结构,数组中的元素被存储在一段连续的内存空间中。它是最简单的数据结构之一,大多数现代编程语言都内置数组支持

这是一个很官方的解释,说白一点其实就是把一系列元素放在一个盒子里,给每个元素住一个单间。他其实是为了方便处理,把一些具有相同类型的元素(比如都是数字,比如都是字符串)按照有序的形式组织在一块。

至于为什么要有顺序的排列,当时是为了好调用,有了顺序就相当于能给他们编上序号,能编上序号就可以叫号摇人了呀,就像住在酒店里,住在9527房间的是路人甲,住在9528房间的是路人乙

数组的遍历

这个还是使用比较多的,数组中的每一个元素都可以通过索引访问到。数组的索引通常从0开始,即数组中第一个元素的索引为0.数组的最后一个元素位于(n-1)个索引处。我们将其称之为基于0的索引。数组也可以是基于其它数的,我们将其称之为基于n的索引。

那要怎么遍历数组尼,就是把住在这个数组里的所有元素挨个领出来看一眼。这当然要使用到我们的for循环了

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

  arr 是要遍历的数组

 arr[i]是要遍历的数组的元素

i 是数组的元素对应的下标(索引号)

冒泡排序

1.冒泡排序:

假设数组arr中有n个元素, 第一轮循环:arr[0]与arr[1]比较,如果arr[1]>arr[0],则arr[1]与arr[0]交换位置,反之位置不变,然后arr[1]与arr[2]比较,以此类推直到arr[n-2]与arr[n-1]比较完,选出参与比较元素的最大元素放在arr[n-1]的位置。

第二轮循环:除去上轮arr[n-1]元素,其余元素继续比较,进行上面的操作,依旧选出参与比较元素中的最大元素,放在arr[n-2]的位置。

总共进行n-1次循环,然后第一轮循环进行n-1次比较,第二轮循环进行n-2次比较,第n-1轮循环进行一次比较。

2.代码实现

    var arr = {3, 5, 8, 6, 9, 7};
    for (var i = arr.length-1; i >0 ; i--) {
        for (var j = 0; j < i; j++) {
           //不管是否交换位置,总之要比较一次
            if (arr[j]>arr[j+1]){
               //交换位置
                //arr[j]和arr[j+1]交换
                var temp;
                temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
}

大体就是这样的代码,出来的结果就是让这个数组中的元素,全部按照从大到小的顺序重新排列一下 就是arr[3,5,6,7,8,9]

这是数组这一块比较重要的一个点,关键在for循环时里面这个条件比较难想,这种思想不一般。