Java数据结构与算法(一) 数组
###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数据结构与算法(一) 数组相关推荐
- Java数据结构和算法( 二 ) ## 数组
目录 数组综述 Java中的数组 创建数组 访问数组 初始化数组 有序数组 线性查找 二分查找 有序数组的优缺点 大O表示法(order of) 为什么不用数据解决一切 - 小结 数组综述 数组是最广 ...
- Java数据结构和算法的数组
阵列的功能: 1.固定大小 2.相同的数据类型 3. 4.数据项可反复 Java数据类型:基本类型(int和double)和对象类型.在很多编程语言中.数组也是基本类型.但在Java中把它们当作对象来 ...
- Java数据结构和算法:数组、单链表、双链表
1. 概要 线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列.本章先介绍线性表的几个基本组成部分:数组.单向链表.双向链表:随后给出双向链表的C.C++和Java三种语言的 ...
- 用数组实现环形队列(尚硅谷Java数据结构与算法)
整个代码在文章最后面,gitee地址:java数据结构与算法: 自己学习与练习数据结构的仓库https://gitee.com/ALi_L/javaDataStructurs.git 环形队列的难点如 ...
- Java数据结构与算法——插入排序
声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本篇文章介绍排序算法中插入排序算法,包括插入排序的思路,适用场景,性能分析,ja ...
- Java数据结构和算法(六)——前缀、中缀、后缀表达式
前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗 ...
- Java数据结构和算法(一)——简介
本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...
- JAVA数据结构与算法【简单介绍】
前几天去面一个大厂,面试官特别好,面试官说到,我们的学习不能本末倒置,数据结构和算法是程序的基础,如果数据结构你没有学好,你真正意义上不算会写代码.你的代码是各处粘贴,杂乱无章的. 由于现在大多用JA ...
- java算法概述,Java数据结构与算法基础(一)概述与线性结构
Java数据结构与算法基础(二)递归算法 Java数据结构与算法基础(一)概述与线性结构 学习目的:为了能更顺畅的读很多底层API代码和拓宽解决问题的思路 一.数据结构概述 1.数据结构是什么?数据与 ...
最新文章
- R语言常用线性模型特征筛选(feature selection)技术实战:基于前列腺特异性抗原(PSA)数据
- 《数学之美》第13章 Google AK-47的设计者—阿米特.辛格博士
- Web应用扫描工具Wapiti
- 编程语言圣经(卷一)
- jQuery选择器大全(48个代码片段+21幅图演示)
- linux通过yum安装vim,linux/centos系统如何使用yum安装vi/vim?
- AudioDestinationNode
- 对抗模拟浏览器的DDoS攻击
- 【ABAP系列】SAP ABAP 从FTP服务器读取文件到本地
- 2020年ACM算法竞赛夏季短学期 任务安排
- Web前端程序员简历
- 三星android智能手机usb驱动程序,三星智能手机USB驱动
- 卫星电话是直接与卫星通信还是通过地面站?
- 服务器组态文件在哪里,组态王怎么读取服务器数据库
- SQL中EXISTS的用法
- c语言中输出以e为底的指数,C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识...
- 【Pygame实战】这游戏有毒,刷爆朋友圈:小编已与病毒版贪吃蛇大战了三百回合,最高分339?
- 腾讯互娱面经-游戏客户端开发
- 《小孩-大冰》阅读笔记
- 常用的JavaScript位操作(Bitwise)
热门文章
- csu 1804 有向无环图
- MySQL之alter语句用法总结
- bootstrap datepicker Uncaught TypeError: Cannot call method 'split' of undefined问题
- 谈谈你对摩尔定理的理解.摩尔定理当前还是继续有效吗?
- cisco switch
- inittab 文件分析
- gtkorphan清理孤立软件包
- hadoop错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
- python图像切面numpy_十个Python图像处理工具,不可不知!
- python爬取正确但不出文件_python爬取糗事百科,该如何正确保存到本地文件夹?报错-问答-阿里云开发者社区-阿里云...