美文网首页
Day03-2 (数组,冒泡排序,插入排序)

Day03-2 (数组,冒泡排序,插入排序)

作者: AnnQi | 来源:发表于2017-09-12 11:06 被阅读0次

数组

什么是数组

数组干嘛用的?
var num=10;之前我们用变量来存储东西。
但是呢,一个变量里面,只能由一个值;
我二十个人,想把每个人名字都存在一起,要不是20个变量

工作量大,而且很麻烦,所以,可以考虑使用数据的组合:数组;
数组可以理解成一个大变量,它里面可以有很多个值

1、声明数组

    var arr=[5,2,52,'hello'];

数组,是有索引的,并且是从"“0”"开始
而且数组,可以存放任意数据类型,并且可以混淆存放
获取数组的长度:::方法::数组.length;
console.log(arr.length);

遍历数组
var arr=[12,17,"hello",5,"world"];
    for(var i=0;i<arr.length;i++){
        console.log(arr[i]);
    }

2、按大小顺序排序

2.1 冒泡排序的原理:

依次比较相邻的两个值,如果后面的比前面的小。则将想的元素排在前面,依次按照这个规则进行多次并且递减的迭代,知道排序正确位置;

        var arr=[85,4684,4,88,26,94,1];
        for(var i=0;i<arr.length-1;i++){
            for(j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    var temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                    console.log(arr);
                }
            }
        }
    /*解释:
     两个循环,当I=0的时候,里面的循环完整执行,从j=0执行到j=5,这就是第一遍的排序
     结果是:将最大的数字排到了最后;
     当i=1的时候,里面的循环再次完整的执行,由于最大的数字已经在最后,所以没必要比较叔祖最后的两项
     所以,j<arr.length-1-i;
     也就是说,每次将最大的一个数排在了最后,直到I=5,j=0;就直接第一项和第二项比较,就over;
2.2 插入排序法

工作方式:像打扑克牌一样,一开始,左手为空,并且桌子上面的牌面朝下,然后,每次从桌子上那一张牌,插入手上对比手上已有的牌,把他根据大小插进去;

        var arr=[85,4684,4,88,26,94,1];

        var temp=null;          //定义一个临时变量保存要插入元素的值

        for(var i=1;i<arr.length;i++){            //从索引1开始遍历数组

            if(arr[i]<arr[i-1]){            //只要插入的元素小于已经排好的最大元素时,就执行下面的操作;

                temp=arr[i];             //把要插入的元素赋给临时变量;

                var p=i-1;             //已经排好的素组的最后一项的索引为i-1;

                while(temp<arr[p]&&p>=0){               //如果要插入的元素小于已经排好的元素;

                    arr[p+1]=arr[p];              //把大于要插入元素(temp)的已经排好的元素位置往后挪;

                    p--;                    //从后往前遍历已经排好序的元素;
                }
                arr[p+1]=temp;
                console.log(arr);
            }
        }

相关文章

  • 数组排序

    数组排序 sort排序 冒泡排序 快速排序 插入排序

  • Day03-2 (数组,冒泡排序,插入排序)

    数组 什么是数组 数组干嘛用的?var num=10;之前我们用变量来存储东西。但是呢,一个变量里面,只能由一个值...

  • 排序算法

    冒泡排序 选择排序 插入排序 归并排序 快速排序 数组内置方法

  • 插入排序的简单理解

    插入排序法 插入排序是除冒泡排序外比较出名的数组排序方法,和冒泡排序一样,用来解决数组内元素按照由大到小(或者由小...

  • 算法基础课 2.3 希尔排序

    排序: 冒泡排序 交换 选择排序 求最大 最小 插入排序 挪动数组 希尔排序 希尔排序也是一种插入排序,它是简...

  • 学习算法第三天 —— 排序

    题目:对数组进行排序冒泡排序插入排序快速排序归并排序 题目 对一个数组进行排序,所有的方法: 冒泡排序 时间复杂度...

  • 算法总结

    一,排序算法:冒泡排序,选择排序,快速排序,归并排序,插入排序,堆排序,希尔排序冒泡排序:会重复的比较数组中相邻的...

  • JavaScript 排序算法

    目录 冒泡排序 插入排序 选择排序 快速排序 归并排序 堆排序 桶排序 冒泡排序 思路 1相邻数值比较2找出数组最...

  • 详解排序算法--插入排序和冒泡排序

    冒泡排序插入排序插入排序和冒泡排序分析 冒泡排序 冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫...

  • 2020前端面试(数据结构)

    常见排序算法 冒泡排序 快速排序 选择排序 插入排序 数组扁平化 递归 reduce toString 树的遍历 ...

网友评论

      本文标题:Day03-2 (数组,冒泡排序,插入排序)

      本文链接:https://www.haomeiwen.com/subject/ovfcsxtx.html