ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数组

2022-07-29 20:33:37  阅读:129  来源: 互联网

标签:10 下标 元素 数组 排序 方法


数据结构

数据结构顾名思义就是数据的结构(逻辑结构 存储结构 算法

存储结构(数据存储的结构方式)

线性结构

  • 数组(顺序表)

  • 队列

  • 链表

非线性结构

  • hash(散列表)

只要是能存数据的容器就必须具备增删改查的方法

一、数组

1、JS数组的概念

数组的字面意思就是一组数据,一组数据(一般情况下是相同类型的数据, 不一定都是数字)

2、数组的声明定义;(引用数据类型)

(1)使用中括号声明数组

 (2)使用new关键词进行声明(对象)

 3、length属性来访问对应的长度

数组长度(数组元素的个数) : arr.length length属性, 不仅是只读的,也可以设置

 4、下标访问

 

 5、数组的赋值

给数组赋值,就是给数组的元素赋值,需要通过给数组的每个元素一一赋值

 二、数组遍历

1、传统的for循环遍历

 2、for in 遍历( 对象 下标 迭代 next)

 3、for of 进行遍历( 数组 迭代器来实现的)

 三、数组的方法

数组是一个存储结构(增删改查的操作)

1、添加(add push append...)

(1)栈方法(先进后出 后进先出)push入栈 pop出栈

将内容添加到最后面

push方法(添加到最后一个)

 (2)队列方法(先进先出 后进后出)

将内容追加到最前面

unshift方法(添加到第一个)

 2、删除(delete(硬删) remove(软删)..)

(1)栈方法

pop方法(删除最后面的)

 (2)队列方法

shift方法(删除第一个)

 3、修改(replace替换 update更新)

(1)反转 reverse(将最后一个变到第一个 一个个对应的换位置)

 (2)排序sort

 4、不影响原本数组的方法

(1)concat(连接)

 (2)slice(切片)

 5、改变原数组的方法

(1)splice方法(主要做删除)

 (2)splice详细讲解:

 

 

 四、排序算法

1、冒泡排序 (最基础的排序)

冒泡排序就是相邻两个数比较,大数在前,小数在后,两数交换位置,依次两两比较,每比较完一趟就会得到最大的数在最后,下一趟就少一个数,然后继续两两比较,直到比较了剩下一个数,得到从小到大排列的数组

 2、选择排序(选择最大值(或者最小值)的下标进行比较的排序)

选择排序就是先默认第一个数为最大值(或者最小值),然后遍历数组进行寻找比最大值大的数的下标(比最小值小的数的下标),记录这个下标,内层循环结束之后判断这个下标是否是最开始默认的第一个数的下标,不是就两个数进行交换位置,就这样依次进行下去每一趟都比较出一个最大值(最小值)出来,比较完后得到一个由大到小(由小到大)的数组。

 3、快速排序(在数据量低于10万内(不多的)最快的 冒泡排序的进阶) 二分O(nlogn)

快速排序的思想画图如下图:

 

 代码如下:

 五、练习题

(1)求数组中所有元素的和

 (2)让数组中的元素交换位置(重要)

 (3)将[1,2,34,58,9,5]变成[5,9,58,34,2,1]

 (4)求数组的最大数和最小数(重要)

 (5)求数组的最小数的下标(重要)

 (6)不改变原数组, 取出数组[3,2,4,5,8,6,3,9]中的[5,8,6].

 (7)在数组[1,2,3,4,6,7,8]中对应的位置插入5, 变成[1,2,3,4,5,6,7,8]

 (8)将数组 ["我","是","一","只","笨","鸟"] 改成 ["我","是","一","只","聪","明","鸟"], 并打印出: "我是一只聪明鸟"

 (9)删除数组[20,23,21,34,54,55,32]中的倒数第二个和倒数第三个元素

 (10)将数组[1, 5, 6, 3, 2, 8, 9, 4] 降序排序

 (11)请将数组[1,46,74,3,5,5]中的元素右移1位

 (12)插数:在数组[1,46,74,3,5,5]的下标为2的位置插入一个数字8,结果为[1,46,8,74,3,5,5]

 (13)冒泡排序自己写一遍.

 (14)给定一个含有n个元素的整型数组a,求a中所有元素的和

 (15)给定一个含有n个元素的整型数组a,打印其中的最大值和最小值.

 (16)给定一个不存在重复元素的整数数组,例如[6,4,7,2,5,8]和一个数字,例如10,请设计一个函数找出两个元素(或同一个元素加自身),并且使这两个数的和为给定数字,并打印出来

        // 例如[6,4,7,2,5,8]和数字10. 打印结果为: 6,4  2,8  5,5

 (17)随机给出一个10位以内的数,然后输出该数共有多少位,并将每位的数字保存到数组中.

        //      如:1342, 位数为:4, 数组为:[1,3,4,2]

 (18)给定两个升序整型数组a和b,打印其共同元素,比如:a = [0, 1, 2, 3, 4],b = [1, 3, 5, 7, 9],输出 1, 3

 (19)有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中,      

        //      如: [2,3,4,56,67,98]    //63,

 (20)取出数组[1,3,1,4,2,3,6,2,6,1,5]中的重复项,存入一个新的数组,并从大到小排序

 

 

标签:10,下标,元素,数组,排序,方法
来源: https://www.cnblogs.com/lym-2022/p/16533436.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有