int a[]={1,4,45,85,65,65,41,42}
如何找到45这个数字}

解决方案 »

  1.   

    先排序 然后 自己 写了,google
    or jdk的 binarysearch
      

  2.   

    java.util.Arrays类中:
    首先Arrays.sort(a);
    然后调用binarySearch();
      

  3.   

    1.快排的思想就是先把数组分成 大于X的和小于X的 
    那么可以应用快排的思想 ,分别取数组的每个元素 进行快排的第一次分组 然后看看分组的结果 及i=j的地方是不是数组leng的1/2是就证明这个数是中间数(记得备份好原数组)
    2.也可以直接对数组排序 进行查找
      

  4.   

    使用2分法查找public static void main(String[] args) {   
                int a[]={1,4,45,85,65,65,41,42}   
                这里再把a数组由小到大进行排序,代码省略...
                int seek = 45;  // 要查找的值  
                // 类似于指针的东西   
                int index = 0;   
                // 查找起始下标   
                int start = 0;   
                // 查找结束下标   
                int end = iArray.length - 1;   
                // 计数器   
                int count = 0;   
          
                while (true) {   
                    count++;   
                    // 初始化数组中间值的下标   
                    // 原来为index = (start + end) / 2;当start + end的值超过了最大的正int值的时候, index 会变成负值,这个时候就会抛出异常.故改为这样       
                    index = start + ((end - start) / 2);
                    System.out.println((end - start) / 2);
                    if (iArray[index] < seek) {   
                        start = index;   
                    } else if (iArray[index] > seek) {   
                        end = index;   
                    } else {   
                        break;   
                    }   
                }   
                System.out.println(" 二分法查找,需要比较的次数:" + count);   
            }