zhebanchazhao.java
来自「算法分析实验 java实现: 有: 公约数 合并算法 字符排序 快速排序」· Java 代码 · 共 47 行
JAVA
47 行
import javax.swing.JOptionPane;
public class zhebanchazhao {
public static void main(String[] args)
{
String lengthString=JOptionPane.showInputDialog(null,"输入有序字符串长度:","Length:",JOptionPane.QUESTION_MESSAGE);
int a=Integer.parseInt(lengthString);
int[] zheban=new int[a];
for(int b=0;b<a;b++)
{
String NumberString=JOptionPane.showInputDialog(null,"输入字符:","Number:",JOptionPane.QUESTION_MESSAGE);
int c=Integer.parseInt(NumberString);
zheban[b]=c;
}
String s1=" ";
for(int k=0;k<zheban.length;k++){
s1=s1+" "+zheban[k];
}
JOptionPane.showMessageDialog(null,s1,"输入的有序字符串:",JOptionPane.INFORMATION_MESSAGE);
String elementString=JOptionPane.showInputDialog(null,"输入查找元素:","element:",JOptionPane.QUESTION_MESSAGE);
int e=Integer.parseInt(elementString);
BinSearch(zheban,e,a);
}
public static void BinSearch(int[] zheban,int e,int a)
{ //在有序表zheban[1..n]中进行二分查找,成功时返回结点的位置,失败时输出提示语句
int n=a;
int low=0,high=n-1,mid; //置当前查找区间上、下界的初值
while(low<=high){ //当前查找区间zheban[low..high]非空
mid=(low+high)/2;
if(zheban[mid]==e)
//查找成功
{
String output="查找元素:"+zheban[mid]+"\n"+"查找位置:"+mid+"\n";
JOptionPane.showMessageDialog(null,output,"查找成功:",JOptionPane.INFORMATION_MESSAGE);
}
if(zheban[mid]>e)
high=mid-1; //继续在zheban[low..mid-1]中查找
else
low=mid+1; //继续在zheban[mid+1..high]中查找
}
//当low>high时表示查找区间为空,查找失败
//JOptionPane.showMessageDialog(null,"查找失败(此元素不存在!)");
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?