java数据结构系列——排列(2):有序阵列
package Array;/*** 对数组排序。当添加到阵列保持有序数组元素;* @author wl**/
public class MyOrderArray {private long array[];private int elements;//用于记录数组中实际数据的个数public MyOrderArray(){array=new long[50];//数组默认长度为50;}public MyOrderArray(int capacity){//设置数组的默认长度array=new long[capacity];}/*** 向数组中插入元素,并维护数组中元素的有序性*/public void add(long data){if(elements>array.length-1){throw new ArrayIndexOutOfBoundsException();}int i;for(i=0;i<elements;i++){if(array[i]>data){break;}}for(int j=elements;j>i;j--){array[j]=array[j-1];}array[i]=data;elements++;}/*** 删除index处的元素* @param index*/public void delete(int index){if(index>=array.length||index<0){throw new IndexOutOfBoundsException();}for(int i=index;i<=elements;i++){array[i]=array[i+1];}elements--;}/*** 删除元素data* @param data*/public void delete(long data){int addr=search(data);if(addr==-1){System.out.println(data+"不存在");}else{for(int i=addr;i<=elements;i++){array[i]=array[i+1];}elements--;}}/*** 用二分查找(折半查找)法查找数组中data的下标位置* @param data* @return*/public int binarySearch(long data){int low,high,mid;low=0;high=elements;while(low<=high){mid=low+(high-low)/2;if(data<array[mid]){high=mid-1;}else if(data>array[mid]){low=mid+1;}else{return mid;}}return -1;}/*** 查找index处的元素* @param index* @return*/public long search(int index){if(index>=array.length||index<0){throw new IndexOutOfBoundsException();}return array[index];}/*** 查找array中data值所在下标* @param data* @return*/public int search(long data){int i;for(i=0;i<=elements;i++){if(array[i]==data){return i;}}return -1;}/*** 打印数组中的内容*/public void display(){System.out.print("[");for(int i=0;i<elements-1;i++){System.out.print(array[i]+",");}System.out.print(array[elements-1]);System.out.println("]");}
}
转载于:https://www.cnblogs.com/mengfanrong/p/5033916.html
java数据结构系列——排列(2):有序阵列相关推荐
- 有序数组二分查找java_详解Java数据结构和算法(有序数组和二分查找)
一.概述 有序数组中常常用到二分查找,能提高查找的速度.今天,我们用顺序查找和二分查找实现数组的增删改查. 二.有序数组的优缺点 优点:查找速度比无序数组快多了 缺点:插入时要按排序方式把后面的数据进 ...
- Java学习系列及数据结构博客全目录
Java学习系列 Java学习系列(一)Java的运行机制.JDK的安装配置及常用命令详解 Java学习系列(二)Java注释.标识符.基本数据类型及其转换易错点详解 Java学习系列(三)Java运 ...
- 【Java 数据结构及算法实战】系列 017:HJ3 明明的随机数
描述 明明生成了N个1到500之间的随机整数.请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出. 数据范围: 1≤n≤1000 ,输入 ...
- 【Java数据结构及算法实战】系列002:算法的四种描述方式
本节是<Java数据结构及算法实战>系列的第2节,主要介绍描述算法的常用的4种方式. 要定义一个算法,我们可以用自然语言.流程图.伪代码的方式描述解决某个问题的过程或是编写一段程序来实现这 ...
- Java 数据结构与算法系列之冒泡排序
一.前言 相信大部分同学都已经学过数据结构与算法这门课了,并且我们可能都会发现一个现象就是我们所学过的数据结构与算法类的书籍基本都是使用 C 语言来写的,好像没见过使用 Java 写的数据结构与算法. ...
- 明翰Java教学系列之集合框架篇V0.2(持续更新)
文章目录 传送门 前言 什么是集合框架 集合框架体系 Collection接口 `Set接口` `HashSet` LinkedHashSet TreeSet EnumSet Queue接口 Prio ...
- Java数据结构和算法(一)——简介
本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...
- Java专家系列:CPU Cache与高性能编程
认识CPU Cache CPU Cache概述 随着CPU的频率不断提升,而内存的访问速度却没有质的突破,为了弥补访问内存的速度慢,充分发挥CPU的计算资源,提高CPU整体吞吐量,在CPU与内存之间引 ...
- java数据结构排序实验报告_java数据结构与算法之插入排序详解
本文实例讲述了java数据结构与算法之插入排序.分享给大家供大家参考,具体如下: 复习之余,就将数据结构中关于排序的这块知识点整理了一下,写下来是想与更多的人分享,最关键的是做一备份,为方便以后查阅. ...
最新文章
- 从云端到边缘 AI推动FPGA应用拓展
- rust做嵌入式开发_Rust 嵌入式开发 STM32 amp; RISC-V
- SAP UI5 jQuery.sap.getModulePath 的工作原理
- MySQL的变量分类总结
- python3.7知识点汇总
- 编号001!华为超级旗舰入网:获中国首张5G手机“身份证”
- 【资料下载】Python 第九讲——灵活运用docker,实现深度学习的环境搭建...
- Pyqt+QRcode 生成 识别 二维码
- Moss网站在不同服务器的迁移
- oracle脑裂复现,Oracle rac集群环境中的特殊问题
- erp框架 saas_2020管理软件:分析saas系统与erp系统之间的区别
- 快手通过标签添加好友_快手开通直播权限添加垂直标签
- 计算机科学与技术哪些专业课,计算机科学与技术专业课程有哪些 计算机科学与技术有哪些科目...
- 易语言文本比较特征码
- Docker Are you trying to connect to a TLS-enabled daemon without TLS?
- java数字家谱管理系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
- 《Drools7.0.0.Final规则引擎教程》第4章 global全局变量
- tp获取执行的sql语句
- js将页面转成PDF文档
- 2020年全球及中国动物模型(模式动物)行业发展现状及竞争格局分析,行业增速较快,发展前景良好「图」
热门文章
- 女孩子应该养成的好习惯
- 数据管理 - 每天5分钟玩转 Docker 容器技术(147)
- 借款人死亡后,贷款必须由家属偿还吗?
- 浅谈GSM/GPRS模块软硬件设计(基于有方M660+模块和单片机)
- eclipse 全屏插件
- SystemParametersInfo (SPI_GETNONCLIENTMETRICS... 在VC 2008 里不能正常工作
- h5首页加载慢_H5网站制作注意了
- visual studio 调试python_Visual Studio Code Python 调试设置
- 32查运行内存的map文件_linux内存管理
- python莫比乌斯_莫比乌斯函数 - osc_7eqzxl4g的个人空间 - OSCHINA - 中文开源技术交流社区...