总结 数据结构:二分查找法15/4/21

总结 数据结构:二分查找法15/4/21

数据结构:二分查找法

代码展示:

package erfenfa;

public class OrdArray {

private long[] a;
private int nElems;

//构造方法 给数组a 和 nElems初始化
public OrdArray(int max) {

// TODO Auto-generated constructor stub
a = new long[max];
nElems = 0;
}

 

//获取数组中值得个数
public int size(){

return nElems;
}

//查找方法

public int find(long searchKey){

int lowerBound = 0; // 数组的第一个
int upperBound = nElems -1;  //数组的最后一个
int curIn;  //中间值
while(true){

curIn = (lowerBound + upperBound) /2;
if(a[curIn]==searchKey){

return curIn; //查找成功
}else if(lowerBound>upperBound){

return nElems;  //查找失败,返回数组中数据的个数
}else {

if(a[curIn]<searchKey){  // 二分法中的细节代码
lowerBound = curIn+1;
}else{

upperBound = curIn-1;
}
}
}

}

 

//插入
public void insert(long value){

int j;
for(j=0;j<nElems;j++){

if(a[j]>value){

break;
}
}
for(int i=nElems;i>j;i–){

a[i] = a[i-1];
}
a[j] = value;
nElems++;
}

 

//删除
public boolean delete(long value){

int key = find(value);//先查找是否存在要删除的数据

if(key==nElems){

return false;    //删除数据不存在
}else{

for(int i = key;i<nElems;i++){

a[i]=a[i+1];
}
nElems–;
return true;
}
}

 

//打印全部
public void display(){

for(int i =0;i<nElems;i++){

System.out.println(a[i]+””);
}
}
}

 

—————————————-分割线——————————————————

package erfenfa;

public class OrderedApp {

public static void main(String[] args) {

OrdArray ard = new OrdArray(100);
ard.insert(77);
ard.insert(99);
ard.insert(44);
ard.insert(55);
ard.insert(22);
ard.insert(88);
ard.insert(11);
ard.insert(00);
ard.insert(66);
ard.insert(33);
if(ard.find(33)!= ard.size()){

System.out.println(“查找成功”);
}else{

System.out.println(“查找失败”);
}

ard.delete(00);
ard.delete(33);
ard.display();

}

}

转载于:https://www.cnblogs.com/yydeyi/p/4448527.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109477.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • viper4android脉冲样本,V4A脉冲反馈样本第一弹 爽爆「建议收藏」

    煤油,积分3926,距离下一级还需1074积分NFS_359|煤油煤油,积分3926,距离下一级还需1074积分|6电梯直达发表于2015-1-218:14:34|只看楼主|只看大图|倒序浏览|阅读模式|收藏本帖NFS_359|煤油煤油,积分3926,距离下一级还需1074积分主题:19|帖子:1016|积分:3926该用户从未签到当前离线本帖最后由…

    2022年4月17日
    195
  • 视频服务器搭建流媒体_个人服务器搭建

    视频服务器搭建流媒体_个人服务器搭建
    什么样的情况下才使用FMS?有以下几种情形的时候,你可能需要用到FMS
    1、需要通过FlashPlayer播放视频,而视频是以流的方式,而不是http渐进式下载的方式进行播放的时候。渐进式下载就是仍然走http协议,youtube,土豆等站点就是。那么什么时候才真正需要用到流视频呢?
    1)视频文件超过100MB或超过10分钟,用户有seek需求的时候
    2)视频文件不需要被下载的时候,rtmp如果不行,可以试试rtmpe
    3)视频流需要多

    2022年10月20日
    4
  • acwing-2189. 有源汇上下界最大流

    acwing-2189. 有源汇上下界最大流给定一个包含 n 个点 m 条边的有向图,每条边都有一个流量下界和流量上界。给定源点 S 和汇点 T,求源点到汇点的最大流。输入格式第一行包含四个整数 n,m,S,T。接下来 m 行,每行包含四个整数 a,b,c,d 表示点 a 和 b 之间存在一条有向边,该边的流量下界为 c,流量上界为 d。点编号从 1 到 n。输出格式输出一个整数表示最大流。如果无解,则输出 No Solution。数据范围1≤n≤202,1≤m≤9999,1≤a,b≤n,0≤c≤d≤105输入样例:10

    2022年8月9日
    5
  • 周鸿祎说腾讯_周鸿祎的3Q

    周鸿祎说腾讯_周鸿祎的3Q6月10日老杳吧的一个手机厂商聚会上,奇虎360董事长周鸿祎有一段很有意思的发言。他用充满煽动性的语言对手机厂商们描述了市场环境、分析了自己的“敌人”小米科技和整个互联网的“敌人”腾讯,并极力为自己的360手机合作平台招徕伙伴。他对在场的手机和相关硬件生产商说,“现在所有的互联网公司在琢磨怎么做手机的同时,我觉得手机公司应该琢磨自己怎么转型。” 酷派、中兴、华为一年出多少手机,这个量比小米

    2025年11月19日
    8
  • 如何盗微信号 除了验证码_微信2个好友验证码破解

    如何盗微信号 除了验证码_微信2个好友验证码破解光凭验证码就可以盗号!微信盗号新手段揭秘91.com移动互联网第一平台时间:2014-06-30[网站合作]快速评论分享到QQ好友新浪微博91娱乐目前有一种新型盗号方式即骗取用户手机验证码来盗取用户微信QQ等帐号,从而进一步盗取其中的微信银行账户、密码以及账单明细,所以平时疏忽大意的童鞋一定要小心谨慎噢。话说有一天,小编的微信忽然就收到了朋

    2022年4月19日
    105
  • js中换行_input怎么不换行

    js中换行_input怎么不换行”\n”为换行转移符,注意\n前后的空格!!!varname=$(“#name”);varname=”姓名:”+name+”\n”;2020年1月补充:一年前的文章,现在忘了当时换行是为了干什么,好像是弹出框消息太长,会自动换行。但是希望一句一句的换行。自动换行效果:\n换行效果:<!DOCTYPEhtml><…

    2025年7月8日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号