| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 530 人关注过本帖
标题:帮我看看这个程序那里错了(j2se)?
只看楼主 加入收藏
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:3 
帮我看看这个程序那里错了(j2se)?
题目要求:用折半查找法判断一个从键盘上输入的数是否在某个数组中。

代码:mport java.util.*;
public class SortFind {
    public static void main(String args[]) {
        int n=0, low, high, middle;
        System.out.println("从键盘输入一个整数,程序将判断该数是否在一个数组中");
        int a[] = {12,34,9,-23,45,6,45,90,123,19,34};
        Arrays.sort(a);   
        Scanner reader = new Scanner(System.in);
            while(reader.hasNextInt()){
        n = reader.nextInt();
                low = 0;
        high= a.length;
        middle = (low + high)/2;
        while (low<=high) {
            middle = (low + high)/2;
            if (n == a[middle] ) {
                System.out.println(n + "是数组中的元素");
                break;
            } else if (n < a[middle]) {
                high=a[middle]-1;
            } else {
                low=a[middle]+1;
            }
        }
        if (low==high) {
            System.out.println(n + "不在数组中");
        }
 }
    System.out.println("\n可继续输入整数,或输入非整数结束程序");
      
    System.out.println("你输入的数据不是整数");
    }
}
搜索更多相关主题的帖子: 键盘 class public middle 
2010-04-02 23:01
baifenghan
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:258
专家分:952
注 册:2006-3-17
收藏
得分:15 
  while (low<=high) {
            middle = (low + high)/2;
            if (n == a[middle] ) {
                System.out.println(n + "是数组中的元素");
                break;
            } else if (n < a[middle]) {
                high=a[middle]-1;    //high = middle - 1;
            } else {
                low=a[middle]+1;     //high = middle + 1;
            }
        }

这里是改变下标的。
2010-04-02 23:41
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:5 
顶LS

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-04-03 08:43
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
收藏
得分:0 
刚学完C++,java还是起步阶段。呵呵!谢谢~
2010-04-04 23:26
快速回复:帮我看看这个程序那里错了(j2se)?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037143 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved