忘记了!请高人指点

解决方案 »

  1.   

        //二分法查找元素k下标,如果元素存在,则返回其下标,不存在,返回-1
            //调用时候,数组必须是已经从小到大已经排序好的数组
            public static int BinarySearch(T[] a, int n,T k)
            {
                int low, high, mid;            low = 0;
                high = n - 1;
                mid = (low + high) / 2;            while (low <= high)
                {
                          //  if (a[mid] < k) low = mid + 1;
                    if (a[mid].CompareTo(k) < 0) low = mid + 1;                else if (a[mid].CompareTo( k)>0) high = mid - 1;                else break;   //找到了                mid = (low + high) / 2;            }            if (low > high) mid = -1;   //没有找到            return mid;          }   //end BinarySeach
      

  2.   

    lz,net类库中的集合类大都是带排序的,为什么非要自己写一个呢?
    你是不是要完成老是布置的作业啊,呵呵?
      

  3.   

    binarysearch前提就是已经排序完成。
    最简单的就是遍历数组,记录最大值最小值 比较当前值 并更新,直到数据结束!
    貌似有个不用O(n)的算法。忘记了