Java数据结构与算法(第二章数组)
2019独角兽企业重金招聘Python工程师标准>>>
数组是应用最广泛的数据存储结构。它被植入到大部分编程语言中。
Java中数组的基础知识
创建数组
在Java中把它们当作对象来对待,因此在创建数组是必须使用new操作符:
int[] intArray; //defines a reference to an arrayingArray = new int[100]; //creates the array, and //sets int Array to refer to it//或使用等价的单语句声明的方法:int[] int array = new int[100];
数组是一个对象,所以它的名字(前面程序中intArray)是数组的一个引用;它并不是数组本身。数组存储在内存中的其他地址中,而intArray仅仅保存着这个地址。数组有一个length字段,通过它可以得知当前数组大小(数据项的个数);
int arrayLength = intArray.length; //find array size
一旦创建数组,大小便不可改变。
访问数组数据项
数组数据项通过方括号中的下标来访问。
temp = intArray[3]; //get contents of fourth element of arrayintArray[7] = 66; //intsert 66 into the eighth cell
初始化
当创建整型数组之后,不另行指定那么数组会自动初始化为空。
除非将特定的值赋给数组的数据项,否则它们一直是特殊的null对象。
使用下面的语法可以初始化一个基本类型的数组:
int[] intArray = {1,3,45,23,123,122,56};
数组的大小是由数据列表中的数据项决定的;大小固定不可改变;
有序数组的Java代码
下面讨论一下有序数组的Java代码,它使用OrdArray类来封装数组和它的算法。类的核心是find()方法,通脱二分查找类定位一个特定的数据项。
小结
Java中的数组是对象,由new操作符创建;
无序数组可以提供快速的插入,但查找和删除较慢;
将数组封装到类中可以保护数组不随意更改;
类的接口类用户可以访问的方法(有时还有字段)组成;
类的接口被设计成使类用户操作更加简单;
有序数组可以使用二分查找;
以B为底A的对数(大概)是在结果小雨1之前用B除A的次数;
线性查找需要的时间与数组中数据项的个数成正比;
二分查找需要的时间与数组中数据项的个数的对数成正比;
大O表示法为比较算法的速度提供了一种方便的方法。
O(1)级时间的算法是最好的,O(logN)次之,O(N)为一般,O(N²)最差;
36页
转载于:https://my.oschina.net/u/1431757/blog/520924
Java数据结构与算法(第二章数组)相关推荐
- 数据结构与算法第二章 线性表、栈、队列、数组、字符串、树、二叉树、哈希表的增删查
03 增删查:掌握数据处理的基本操作,以不变应万变 通过前面课时的学习,相信你已经建立了利用数据结构去完成时空转移的思想.接下来,你需要在理论思想的指导下灵活使用.其实,要想灵活使用数据结构,你需要先 ...
- JAVA数据结构与算法【稀疏数组】
先看一个实际的需求: 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: 记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素 ...
- 数据结构与算法--第二章pro题解
文章目录 ==模板== --双链表 ==模板==--循环双链表 1.双链表的基本运算 2:整数双链表的基本运算-3 3:整数双链表的基本运算-4 4:循环双链表的基本运算 模板 --双链表 struc ...
- Java数据结构与算法---栈(数组存储)
今天用Java实现了数据结构中的栈,学会了操纵栈的一系列方法.关于栈的相关内容这里不做介绍,我只是将自己实现的代码分享出来,记录自己的学习进度同时希望能对其他朋友具有借鉴作用. 以下是用数组存储实现栈 ...
- 尚硅谷java数据结构与算法 韩顺平 数组实现队列问题
day2学习打卡:数组实现循环队列 package queue;import java.util.Scanner; //这里没有使用循环队列的思想所以造成了数组空间的浪费(数组空间不能复用) publ ...
- 有序数组二分查找java_详解Java数据结构和算法(有序数组和二分查找)
一.概述 有序数组中常常用到二分查找,能提高查找的速度.今天,我们用顺序查找和二分查找实现数组的增删改查. 二.有序数组的优缺点 优点:查找速度比无序数组快多了 缺点:插入时要按排序方式把后面的数据进 ...
- Java数据结构和算法(第二版)
Java数据结构和算法(第二版) 下载地址 https://pan.baidu.com/s/112D5houIgu0eMs_i5o0Ujw 扫码下面二维码关注公众号回复 100066获取分享码 本书目 ...
- Java算法--第二章--查找与排序(2)递归基础--佩波那契最大公约数插入排序汉诺塔
Java算法–第二章–查找与排序(2)递归基础 一.找重复 1.找到一种划分方法 2.找到递推公式或者等价转换 都是父问题转化为求解子问题 二.找变化的量 变化的量通常要作为参数 三.找出出口 代码: ...
- 用数组实现环形队列(尚硅谷Java数据结构与算法)
整个代码在文章最后面,gitee地址:java数据结构与算法: 自己学习与练习数据结构的仓库https://gitee.com/ALi_L/javaDataStructurs.git 环形队列的难点如 ...
- Java数据结构与算法(二)
Java数据结构与算法(二) 第六章 递归 1 递归应用场景 2 递归的概念 3 递归调用机制 4 递归能解决什么样的问题 5 递归需要遵守的重要规则 6 递归-迷宫问题 6.1 迷宫问题 6.2 代 ...
最新文章
- Numpy 广播机制(两个不同维度对象进行数学运算)
- 北科大matlab,北科大matlab第五次作业多项式及其相关计算.doc
- 神奇的nginx之https支持
- a b*c的C语言表达式为,在C语言的if语句中,用作判断的表达式为 ______
- 百度云世界里的“七种武器”:PCS、BAE、Site App、ScreenX等
- android 网络调试 源代码,Android源代码调试环境搭建
- python-temp-0626随堂
- 3-18pytorch与矩阵分解PCA
- 嵌入式单片机STM32原理及应用
- 读《因果的真相》第五章摘抄笔记
- 枯燥的Kotlin协程三部曲(中)——应用实战篇
- 中望CAD的引线标注格式怎么改_大神说这样学CAD命令,超容易掌握
- 向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读(经典)
- 机器学习第一章:简介和概括
- 淘宝客导购产品设计 (一)
- MATLAB simulink 模型验证学习笔记
- 小米官网首屏纯css代码
- 中职学生学业水平计算机考试试题,中职学业水平测试试卷(综合卷).docx
- 盘点安卓绿色联盟2018全年技术沙龙干货分享
- Codeforces 891E Lust