这篇文章主要介绍“java如何实现有序数组”,在日常操作中,相信很多人在java如何实现有序数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java如何实现有序数组”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
package com.clean.array;
public class OrderArray {
private long[] a;
private int nElems;
public OrderArray(int max) {
a = new long[max];
nElems = 0;
}
public int size() {
return nElems;
}
public int find(long key) {
int lowBound = 0;
int highBound = nElems - 1;
int curIn;
while (true) {
curIn = (lowBound + highBound) / 2;
if(a[curIn] == key) {
return curIn;
} else if (lowBound > highBound) {
return nElems;
} else {
if(a[curIn] < key) {
lowBound = curIn + 1;
} else {
highBound = curIn -1;
}
}
}
}
public void insert(long value) {
int j;
for(j = 0; j < nElems; j ++) {
if(a[j] > value) {
break;
}
}
for(int k = nElems; k > j; k --) {
a[k] = a[k - 1];
}
a[j] = value;
nElems ++;
}
public boolean delete(long value) {
int j = find(value);
if(j == nElems) {
return false;
} else {
for(int k = j; k < nElems; k ++) {
a[k] = a[k + 1];
}
nElems --;
return true;
}
}
public void disPlay() {
for(int j = 0; j < nElems; j ++) {
System.out.print(a[j] + " ");
}
System.out.println();
}
}
package com.clean.array;
public class OrderApp {
public static void main(String[] args) {
int max = 100;
OrderArray orderArray = new OrderArray(max);
orderArray.insert(200);
orderArray.insert(100);
orderArray.insert(500);
orderArray.insert(300);
orderArray.insert(10);
orderArray.insert(20);
orderArray.insert(11);
orderArray.disPlay();
int key = 300;
if(orderArray.find(key) != orderArray.size()) {
System.out.println("find : " + key);
} else {
System.out.println("not find : " + key);
}
orderArray.disPlay();
orderArray.delete(200);
orderArray.delete(10);
orderArray.delete(11);
orderArray.disPlay();
}
}
到此,关于“java如何实现有序数组”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4118445/blog/3114043