首页 > 编程知识 正文

c语言二分查找算法代码,数据结构 二叉树二分查找

时间:2023-05-03 11:03:48 阅读:128898 作者:3503

一.概述

有序排列中常用二分搜索,可以提高搜索速度。 今天,通过依次检索和二分检索实现数组的追加、删除、重新审视。

二.有序排列的优缺点

优点:搜索速度比无序数组快多了

缺点:插入时按排序移动后面的数据

三、有序排列和无序排列的共同优缺点

删除数据时,必须向前移动后续数据,以填补已删除项目的漏洞

四.代码实现

公共类订单阵列{

私密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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。