阵列的功能:

1、固定大小

2、相同的数据类型

3、

4、数据项可反复

Java数据类型:基本类型(int和double)和对象类型。在很多编程语言中。数组也是基本类型。但在Java中把它们当作对象来对待。因此在创建数组时必须使用new操作符。

有序数组与无序数组比較:最基本的优点是查找速度比无序数组快多了。不好的方面是在插入操作中由于全部靠后的数据都须要移动以疼开空间。所以速度较慢。

有序数组和无序数组数据中的删除操作都非常慢,这是由于数据项必须向前移动来填补已删除数据项的空洞。

数据訪问:从下标訪问,能够理解为位置訪问,这一点主要说明与链表的关系訪问的不同。

数组中有无反复值对数组操作的影响:

二分查找和线性查找:

线性查找。

在一列给定的值中进行搜索,从一端開始逐一检查每一个元素,直到找到所需元素的过程。

假设查找池是某种类型的表,比方一个数组,简单的查找方法是从表头開始,一次将每个值与目标元素相比較,最后,或者查找到目标。或者达到表尾。而目标不存在于组中,这种方法成为线性查找。

线性查找又称为顺序查找。


public class LSearch {
public static int[] Data = { 12, 76, 29, 22, 15, 62, 29, 58, 35, 67, 58,
33, 28, 89, 90, 28, 64, 48, 20, 77 }; // 输入数据数组 public static int Counter = 1; // 查找次数计数变量 public static void main(String args[]) { int KeyValue = 22;
// 调用线性查找
if (Linear_Search((int) KeyValue)) {
// 输出查找次数
System.out.println("");
System.out.println("Search Time = " + (int) Counter);
} else {
// 输出没有找到数据
System.out.println("");
System.out.println("No Found!!");
} }
public static boolean Linear_Search(int Key) {
int i; // 数据索引计数变量 for (i = 0; i < 20; i++) {
// 输出数据
System.out.print("[" + (int) Data[i] + "]");
// 查找到数据时
if ((int) Key == (int) Data[i])
return true; // 传回true
Counter++; // 计数器递增
}
return false; // 传回false
}
}

二分查找(折半查找)。

几个特点:

1、必须採用顺序存储结构

2、必须按keyword大小有序排列

3、数据量越大,效率体现的越明显

	/**
* 二分查找法 demo
*/
public int find(){
a [0] = 22;
a [1] = 33;
a [2] = 88;
a [3] = 43;
a [4] = 74;
a [5] = 34;
a [6] =63;
a [7] = 32;
a [8] = 26;
a [9] = 92;
int lowerBound = 0;
int upperBound = 9;
int curIn = 0;
long searchKey = 63;
while (true) { curIn = (lowerBound+upperBound)/2; if (a[curIn]==searchKey) { return curIn; }
else if (lowerBound>upperBound) { return 10; }else { if (a[curIn]<searchKey) { lowerBound = curIn+1; }else { upperBound = curIn-1; }
}
}
}

大O表示法

汽车按尺寸被分为若干类,微型、中型、大型等等。相同,我们也须要一个快捷的方法来评价计算机算法的效率,在计算机科学中,这样的粗略的度量方法被称作“大O”表示法。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

Java数据结构和算法的数组的更多相关文章

  1. Java数据结构和算法之数组与简单排序

    一.数组于简单排序 数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信 ...

  2. Java数据结构和算法总结-数组、二分查找

    前言:在平时开发中数组几乎是最基本也是最常用的数据类型,相比链表.二叉树等又简单很多,所以在学习数据和算法时用数组来作为一个起点再合适不过了.本篇博文的所有代码已上传 github ,对应工程的 ar ...

  3. Java数据结构和算法 - 数组

    Q: 数组的创建? A: Java中有两种数据类型,基本类型和对象类型,在许多编程语言中(甚至面向对象语言C++),数组也是基本类型.但在Java中把数组当做对象来看.因此在创建数组时,必须使用new ...

  4. 【Java数据结构学习笔记之二】Java数据结构与算法之栈(Stack)实现

      本篇是java数据结构与算法的第2篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型   栈是 ...

  5. Java数据结构和算法(六)——前缀、中缀、后缀表达式

    前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗 ...

  6. Java数据结构和算法(十四)——堆

    在Java数据结构和算法(五)——队列中我们介绍了优先级队列,优先级队列是一种抽象数据类型(ADT),它提供了删除最大(或最小)关键字值的数据项的方法,插入数据项的方法,优先级队列可以用有序数组来实现 ...

  7. Java数据结构和算法(九)——高级排序

    春晚好看吗?不存在的!!! 在Java数据结构和算法(三)——冒泡.选择.插入排序算法中我们介绍了三种简单的排序算法,它们的时间复杂度大O表示法都是O(N2),如果数据量少,我们还能忍受,但是数据量大 ...

  8. java数据结构与算法之栈(Stack)设计与实现

    本篇是java数据结构与算法的第4篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型 栈是一种用于 ...

  9. Java数据结构和算法 - 堆

    堆的介绍 Q: 什么是堆? A: 这里的“堆”是指一种特殊的二叉树,不要和Java.C/C++等编程语言里的“堆”混淆,后者指的是程序员用new能得到的计算机内存的可用部分 A: 堆是有如下特点的二叉 ...

随机推荐

  1. 终端复用工具tmux的使用

    tmux的作用在于终端复用. 1. 在server上启动一个bash.并在里面执行tmux 2. 通过ssh远程登录server,执行tmux attach,就会切换到server上的那个bash中, ...

  2. kernel build &amp; preempt-rt patch &amp; xenomai

    提前准备好 linux 内核源代码,假设是 x86 系统.能够去下载原生内核(Vanilla kernel): wget https://www.kernel.org/pub/linux/kernel ...

  3. p2p网贷系统的架构设计

    p2p网贷系统,标准版已经初步完成了.    最近写点总结,也算是分享吧. 简介:p2p网贷系统,是理财类的互联网金融系统.核心功能,就是理财人用户注册,冲钱,然后投标,标到期之后,收到回款.如果不想 ...

  4. web项目开启日志打印

    原文链接:http://blog.csdn.net/qq_37936542/article/details/79045188 参考文章地址:点击打开链接,写的很清晰 一:导入log4j包或依赖     ...

  5. JS中的JSON对象 定义和取值

    1.JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任 ...

  6. BAT实习内推笔试卷(第一场)——个人答案以及分析

    第一题: 给定一个长度不小于2的数组arr. 写一个函数调整arr,使arr中要么全部的偶数位上都是偶数,要么全部的奇数位上都是奇数上. 要求:假设数组长度为N.时间复杂度请达到O(N),额外空间复杂 ...

  7. 【HDU5748】Bellovin

    Description Peter has a sequence  and he define a function on the sequence -- , where  is the length ...

  8. 【u239】整数分解

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 某些数能表示成为一些互不相同的整数的阶乘之和.如9=l!+2! +3!. 现在给定一个非负整数n,要求 ...

  9. [Python] 字典推导 PEP 274 -- Dict Comprehensions

    之前自己也遇到过一次,这段时间在群里也遇到过几次的一个问题 用python2.7写的一段程序.里面用到了字典推导式,可是server版本号是python2.6,无法执行. 今天查了下关于Dict Co ...

  10. 行列式(determinant)的物理意义及性质

    1. 物理(几何)意义 detA=output areainput area 首选,矩阵代表的是线性变换(linear transformation).上式说明一个矩阵的行列式(detA)几何意义上, ...