IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数组-多维数组 -> 正文阅读

[数据结构与算法]数组-多维数组

一维数组入门:数组特点:长度固定,连续空间,存储同一种类型数据

数组内存分配图。

for-rach循环:简单,主要用于遍历操作。

一维数组的应用? ?数组优缺点:优点? ?按照索引查询效率高;缺点? ? 添加删除元素效率低;按照内容查询效率低(无序)。

?冒泡排序:基本的排序算法,理解排序规则,实现并完善排序代码。

数组类型做形参。

数组的界限:

定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;

数组元素的引用方式:arrayName[index] ;index为数组元素下标,可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];

数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 ~ n-1;

每个数组都有一个属性length指明它的长度;数组的长度: 数组名.length

起点: 数组名[0]? ? ? ? ? ? ? ? ?终点: 数组名[length-1] ? ?

数组也是数据结构中的一种实现,在存储数据的时候经常用数组来存储经常见的数据结构:

1.线性表 ;2.非线性表;3.树;4.图;5.队列;6.堆;7.栈

数组经常用来考算法:

? ? 面试需求:

1.写出某个算法

? ? ? ?冒泡排序

? ? ? ?选择排序

? ? ? ?插入排序

? ? ? ?快速排序

2.排序算法的时间复杂度(空间复杂度)

? ? 衡量一个数据结构是否是合适的衡量标准。

3.排序算法的稳定性

? ? 排序之前数组的元素位置和排序之后的数组元素位置是否发生变化。

二维数组:实质是每个元素是一维数组的一维数组;二维数组内存分配图。

二维数组举例: int [][] a = {{1,2},{3,4,0,9},{5,6,7}};? ? Java中多维数组不必须是规则矩阵形式? ? ? ? ??

二维数组可以看成以数组为元素的数组。Java中多维数组的声明和初始化应按从高维到低维的顺序进行。

public class ArrayOne{
   public static void main(String[] args){                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
       int[][] arr = new int[3][];
          arr[0] = new int[2];
          arr[1] = new int[5];
          arr[2] = new int[3];

            arr[0][0]=8;
            arr[0][1]=2;

            arr[1][0]=5;
            arr[1][1]=20;
            arr[1][2]=29;
            arr[1][3]=39;
            arr[1][4]=49;

            arr[2][0]=200;
            arr[2][1]=59;
            arr[2][2]=408;
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
               System.out.print(arr[i][j]+"\t");
   }
  }
 }
}

java应用程序中的主方法(程序的入口):public static void main(String[] args){......}

命令行参数:1.在启动java应用程序时可以一次性地向应用程序中转递0~多个参数-------命令行参数

2.命令行参数使用格式:

? ? ? ? ? ? ? ? ?java? ArrayTwo one three five six "Mr Brown?"

由参数args接收

1.空格将参数分开? ?2.若参数包含空格,用双引号引起来。

public class ArrayTwo{
     public static void main(String[] args){
       for(int i =0;i<args.length;i++){
           System.out.println("args["+i+"]="+args[i]);
   }
  }  
}

数组的拷贝:1.使用java.lang.System类的静态方法

? ? ? ? public static void arraycopy

????????????????(Object src,int srcPos,Object dest, int destPos,int length)?

可以用于数组src从第srcPos项元素开始的length个元素拷贝到目 标数组从destPos项开始的length个位置。

?如果源数据数目超过目标数组边界会抛出

? ? ? ? IndexOutOfBoundsException 异常。?

public class ArrayOne{
    public static void main(String[] args){

        String[] s = {"Mircosoft","IBM","Sun","Oracle","Apple"};
		 String[] sBak = new String[6];
		 System.arraycopy(s,0,sBak,0,s.length);
		   for(int i=0;i<sBak.length;i++){
			  System.out.print(sBak[i]+" ");
	}
  }
}

该类提供了关于数组操作的API。?

1.打印数组-------toString方法。2.比较两个数组是否相同------equals方法。

3.数组排序-------sort方法。? ? ? ?4.数组查找------binarySearch方法。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 17:01:12  更:2021-12-02 17:02:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:43:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码