###1. 无序数组

package com.fantj.dataStruct.array;/*** Created by Fant.J.* 2017/12/20 18:16*/
public class MyArray {private long[] arr;//表示有效数据的长度private int elements;public MyArray() {arr = new long[50];}public MyArray(int maxsize) {arr = new long[maxsize];}/*** 添加数据*/public void insert(long value){arr[elements] = value;elements++;}/*** 显示数据*/public void display(){System.out.print("[");for (int i = 0;i < elements;i++){System.out.print(arr[i]+" ");}System.out.print("]");}/*** 查找数据(根据元素查找)*/public int search(long value){int i;for (i = 0;i < elements;i++){if (value == arr[i]){break;}}//是否查到最后一个了if (i == elements){return -1;  //查找不到}else {return i;}}/*** 根据索引查找*/public long get(int index){if (index >= elements || index < 0){throw new ArrayIndexOutOfBoundsException();}else {return arr[index];}}/*** 删除数据*/public void delete(int index){if (index >= elements || index < 0){throw new ArrayIndexOutOfBoundsException();}else {for (int i = index;i < elements;i++){arr[index] = arr[index+1];}elements--;}}/*** 更新数据*/public void update(int index,long newvalue){if (index >= elements || index < 0){throw new ArrayIndexOutOfBoundsException();}else {arr[index] = newvalue;}}
}
复制代码

###2. 有序数组(只在添加数据的时候做了改动)

    /*** 添加数据*/public void insert(long value){int i;for (i = 0;i<elements;i++){if (arr[i] > value){break;}}for (int j = elements;j>i;j--){arr[j] = arr[j-1];}arr[i] = value;elements++;}
复制代码

###3.二分法查找(前提是有序数组)

    /*** 二分法查找*/public int binarySearch(long value){int pow = elements;int low = 0;int middle;while (true){middle = (pow+low)/2;if (arr[middle] == value){return middle;}else {if (arr[middle]>value){pow = middle - 1;  //如果数组中间的值比value大,middle-1}else {low = middle + 1; //如果小,最小届加一}}}}
复制代码

Java数据结构与算法(一) 数组相关推荐

  1. Java数据结构和算法( 二 ) ## 数组

    目录 数组综述 Java中的数组 创建数组 访问数组 初始化数组 有序数组 线性查找 二分查找 有序数组的优缺点 大O表示法(order of) 为什么不用数据解决一切 - 小结 数组综述 数组是最广 ...

  2. Java数据结构和算法的数组

    阵列的功能: 1.固定大小 2.相同的数据类型 3. 4.数据项可反复 Java数据类型:基本类型(int和double)和对象类型.在很多编程语言中.数组也是基本类型.但在Java中把它们当作对象来 ...

  3. Java数据结构和算法:数组、单链表、双链表

    1. 概要 线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列.本章先介绍线性表的几个基本组成部分:数组.单向链表.双向链表:随后给出双向链表的C.C++和Java三种语言的 ...

  4. 用数组实现环形队列(尚硅谷Java数据结构与算法)

    整个代码在文章最后面,gitee地址:java数据结构与算法: 自己学习与练习数据结构的仓库https://gitee.com/ALi_L/javaDataStructurs.git 环形队列的难点如 ...

  5. Java数据结构与算法——插入排序

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本篇文章介绍排序算法中插入排序算法,包括插入排序的思路,适用场景,性能分析,ja ...

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

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

  7. Java数据结构和算法(一)——简介

    本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...

  8. JAVA数据结构与算法【简单介绍】

    前几天去面一个大厂,面试官特别好,面试官说到,我们的学习不能本末倒置,数据结构和算法是程序的基础,如果数据结构你没有学好,你真正意义上不算会写代码.你的代码是各处粘贴,杂乱无章的. 由于现在大多用JA ...

  9. java算法概述,Java数据结构与算法基础(一)概述与线性结构

    Java数据结构与算法基础(二)递归算法 Java数据结构与算法基础(一)概述与线性结构 学习目的:为了能更顺畅的读很多底层API代码和拓宽解决问题的思路 一.数据结构概述 1.数据结构是什么?数据与 ...

最新文章

  1. R语言常用线性模型特征筛选(feature selection)技术实战:基于前列腺特异性抗原(PSA)数据
  2. 《数学之美》第13章 Google AK-47的设计者—阿米特.辛格博士
  3. Web应用扫描工具Wapiti
  4. 编程语言圣经(卷一)
  5. jQuery选择器大全(48个代码片段+21幅图演示)
  6. linux通过yum安装vim,linux/centos系统如何使用yum安装vi/vim?
  7. AudioDestinationNode
  8. 对抗模拟浏览器的DDoS攻击
  9. 【ABAP系列】SAP ABAP 从FTP服务器读取文件到本地
  10. 2020年ACM算法竞赛夏季短学期 任务安排
  11. Web前端程序员简历
  12. 三星android智能手机usb驱动程序,三星智能手机USB驱动
  13. 卫星电话是直接与卫星通信还是通过地面站?
  14. 服务器组态文件在哪里,组态王怎么读取服务器数据库
  15. SQL中EXISTS的用法
  16. c语言中输出以e为底的指数,C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识...
  17. 【Pygame实战】这游戏有毒,刷爆朋友圈:小编已与病毒版贪吃蛇大战了三百回合,最高分339?
  18. 腾讯互娱面经-游戏客户端开发
  19. 《小孩-大冰》阅读笔记
  20. 常用的JavaScript位操作(Bitwise)

热门文章

  1. csu 1804 有向无环图
  2. MySQL之alter语句用法总结
  3. bootstrap datepicker Uncaught TypeError: Cannot call method 'split' of undefined问题
  4. 谈谈你对摩尔定理的理解.摩尔定理当前还是继续有效吗?
  5. cisco switch
  6. inittab 文件分析
  7. gtkorphan清理孤立软件包
  8. hadoop错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
  9. python图像切面numpy_十个Python图像处理工具,不可不知!
  10. python爬取正确但不出文件_python爬取糗事百科,该如何正确保存到本地文件夹?报错-问答-阿里云开发者社区-阿里云...