一.概述
有序排列中常用二分搜索,可以提高搜索速度。 今天,通过依次检索和二分检索实现数组的追加、删除、重新审视。
二.有序排列的优缺点
优点:搜索速度比无序数组快多了
缺点:插入时按排序移动后面的数据
三、有序排列和无序排列的共同优缺点
删除数据时,必须向前移动后续数据,以填补已删除项目的漏洞
四.代码实现
公共类订单阵列{
私密int nele mes; //记录数组的长度
私密长[ ] a;
//*
*构造函数中的初始化数组赋值默认长度
*
* @param max
*/
公共索引阵列(intmax ) {
this.a=new long[max];
nElemes=0;
}
//查找方法(二分查找)。
公共int find (长搜索元素) {
int startIndex=0;
int endIndex=nElemes-1;
int curIn;
while (真)。
Curin=(startindexendindex )/2;
if (a [ curin ]==搜索元素) {
返回周期; //找到
}找到}elseif(startindexendindex ) (/) )
返回新消息; //返回大于最大索引的整数
(else(/仍继续寻找
if(a[Curin]
startIndex=curIn 1; //改变最小索引
(else(//向前查找
结束索引=curin-1;
}
}
}
}
//插入元素(路线搜索) ) ) ) ) ) )。
公共语音插入(长值) {
int j;
for(j=0; Jj
if(a[j]value ) {
布雷克;
}
}
for(intk=nelemes; kj; k----}{
a[k]=a[k-1];
}
a[j]=value;
nElemes;
}
//删除数据项
publicbooleandelete (长值) {
intj=find(value;
if(j==nelemes ) {
返回假; //未找到
}else{
//所有元素向前移动一位
for(intk=j; K
a[k]=a[k 1];
nelemes----;
返回真;
}
}
//展示的方法
公共语音显示(
for(intI=0; I
system.out.print(a[I] ';
}
}
公共int size () }
返回新消息;
}
}
五.测试
publicstaticvoidmain (字符串[ ] args ) {
int max=100;
orderarrayoa=新订单阵列(max;
OA.insert(12;
OA.insert(14;
OA.insert(90;
OA.insert(89;
OA.insert(87;
OA.insert(88;
OA.insert(67;
oa.display (;
int searchkey=90;
if (OA.find (搜索密钥)!=oa.size () ) }
system.out.println (found ' search key;
}else{
系统. out.println (not found );
}
OA.Delete(88;
OA.Delete(90;
OA.Delete(89;
oa.display (;
}
以上就是这篇文章的全部。 希望对大家的学习有帮助。 另外,希望你能支持很多编程诀窍。
相关报道
总结
如果你觉得编程家庭网站的内容很好,欢迎程序员朋友推荐程序员网站。
该文字内容由网民网络收集整理提供,作为学习参考,版权归原作者所有。
如果你喜欢交流学习经验,点击链接加入交流1群: 1065694478 (满)交流2群: 163560250