packagesearch;importjavax.swing.JOptionPane;publicclasssearch{@SuppressWarnings("unused")publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubinti;intj;intg;i...
package search;
import javax.swing.JOptionPane;
public class search {
@SuppressWarnings("unused")
public static void main(String[] args) {
// TODO Auto-generated method stub
int i;
int j;
int g;
int flag1=1;
int[] a=new int[10];
while(flag1==1){
flag1=0;
for(i=0;i
j=i+1;
String aString = JOptionPane.showInputDialog("请按升序排列输入十个数,这是第"+j+"个: ");
a[i] = Integer.parseInt(aString);
}
for(i=0;i
if(a[i]>a[i+1])
for(g=0;g
a[i]=0;
flag1=1;
JOptionPane.showMessageDialog(null,"数组未按升序排列,请重新输入。","错误提示",JOptionPane.ERROR_MESSAGE);
break;
}
}
}
String scanString = JOptionPane.showInputDialog("输入你要查找的数: ");
int x = Integer.parseInt(scanString);
for(i=0;i
System.out.print(a[i]);
System.out.print(",");
}
System.out.println();
int k=BinarySearch(x,a)+1;
System.out.println(x + "所在位置是:"+ k);
}
public static int BinarySearch(int x,int[] a){
int left = 0;int right = a.length;
while(left<=right){
int middle = (left + right)/2;
if(x==a[middle]) return middle;
if(x>a[middle])left = middle+1;
else right = middle-1;
}
return -1;
}
}
展开