总结 数据结构:二分查找法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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • silverlight:telerik RadControls for Silverlight 主题使用心得

    silverlight:telerik RadControls for Silverlight 主题使用心得默认情况下:telerikRadControls控件使用的是OfficeBlack主题,就算在App.xaml.cs里写上StyleManager.ApplicationTheme=newWindows7Theme();  在blend中,看到的仍然是OfficeBlack主题,如果想在设计期就看到某种主题风格,有一个简单的办法:找到telerikradc…

    2022年7月24日
    10
  • iphone android换机助手下载,安卓苹果换机助手[通俗易懂]

    iphone android换机助手下载,安卓苹果换机助手[通俗易懂]安卓苹果换机助手软件由腾讯团队专业打造的一款单品,它可以帮助你的手机自由换机,把各种信息文件都一次转换到新手机中去,安卓苹果换机助手无需联网,不耗费手机流量,传输速度快。功能介绍支持各主流品牌和厂商设备极速秒传。一键轻松换机,支持通讯录、软件、短信、文件、通话记录、书签、图片、音乐、视频、日程等多种数据传输。功能特色【数据全面】支持数据全面,基本覆盖常见的手机各种数据类型,包括图片、视频、联系人、…

    2022年5月9日
    113
  • HDU-1387-Team Queue

    HDU-1387-Team Queue

    2022年1月5日
    47
  • idea插件Tabnine激活码_在线激活

    (idea插件Tabnine激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlb…

    2022年3月21日
    615
  • Android 低功耗蓝牙开发

    Android 低功耗蓝牙开发初识低功耗蓝牙Android4.3(APILevel18)开始引入BluetoothLowEnergy(BLE,低功耗蓝牙)的核心功能并提供了相应的API,应用程序通过这些API扫描蓝牙设备、查询services、读写设备的characteristics(属性特征)等操作。AndroidBLE使用的蓝牙协议是GATT协议,有关该协议的详细内容可以参见蓝牙官方文…

    2022年6月18日
    72
  • 指针函数与函数指针

    指针函数与函数指针1.指针函数先看下面的函数声明,注意,此函数有返回值,返回值为int*,即返回值是指针类型的。int*f(inta,intb);上面的函数声明又可以写成如下形式:int*f(inta,intb);让指针标志*与int紧贴在一起,而与函数名f间隔开,这样看起来就明了些了,f是函数名,返回值类型是一个int类型的指针。下面看指针函数的实现:in

    2022年6月22日
    25

发表回复

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

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