阵列的功能:

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. [Angular] Test Directive

    directive: import { Directive, HostListener, HostBinding, ElementRef } from '@angular/core'; @Direct ...

  2. jquery-10 jquery中的绑定事件和解绑事件的方法是什么

    jquery-10 jquery中的绑定事件和解绑事件的方法是什么 一.总结 一句话总结:bind(); unbind(); one(); 1. jquery中的绑定事件和解绑事件的方法是什么? bi ...

  3. JasperReport html 导出

    In my last blog post I discussed about Generating jasper reports in different formats using json fil ...

  4. WeakRefence

    http://183615215-qq-com.iteye.com/blog/1867568

  5. Redis的增删改查命令总结与持久化方式

    原文:Redis的增删改查命令总结与持久化方式 Redis是用C语言实现的,一般来说C语言实现的程序"距离"操作系统更近,执行速度相对会更快. Redis使用了单线程架构,预防了多 ...

  6. 数组[0]和[firstobject]的区别

    数组[0]和[firstobject]的区别   [0]:数组为空时回报错 [firstobject]:数组为空时回返回nil

  7. 怎样在swift中使用cocoapods导入的第三方oc库

    假如你来到这里,说明你已经開始着手使用swift这门新语言了. 就像Java有Maven一样.Objective-C也有自己的依赖管理工具cocoapods. 可是因为swift才出来不久,眼下非常多 ...

  8. 实际工程Quartz与Spring设计与实现一体化的热部署

    1.需求说明 主要负责项目任务调度.使用Quartz.以Spring为辅助. 如今有这样一个需求:我们不知道管理员想设定过多厂时间运行主任务,须要在配置文件定义.在配置好后须要马上运行.实现热部署. ...

  9. Popup 解决位置不随窗口/元素FrameworkElement 移动更新的问题

    原文:Popup 解决位置不随窗口/元素FrameworkElement 移动更新的问题 Popup弹出后,因业务需求设置了StaysOpen=true后,移动窗口位置或者改变窗口大小,Popup的位 ...

  10. 电子商务系统的设计与实现(七):前后端系统UI设计的一些思考

    对于大部分开发者来说,写界面是最烦人的事.我想,开发者最初诞生,以及我们在大学学习的时候,更加侧重的是程序设计和逻辑思维,而不是界面.界面更象是艺术,艺术和程序设计是两回事. 我个人还是想成为全栈式开 ...