如何修复二进制搜索?

时间:2017-10-16 00:09:43

标签: c++ binary-search

该程序的目的是使用二进制搜索来查找值42。 我能做些什么让它正常运作?

目的:它按排序顺序生成一百万个元素的列表,并尝试插入另外100个元素,同时保持排序顺序。然后它使用二进制搜索搜索特定值(42)。

计算机告诉我,我在线路上出现了一个错误,它开始bool BinarySearch,它说预期'('用于函数式转换或类型构造

#ifndef InsertLookup_h
#define InsertLookup_h

bool find(long* list, long size, long value) {
    for (long i = 0; i < size; i++) {

        bool binarySearch(long* list, long value, int first, int sec)
        {
            while (first <= sec) {
                int mid = (first+sec)/2;

                if (list[mid] == value)
                    return true;

                else if (list[mid] > value)
                    sec = mid-1;
                else
                    first = mid +1;

                return false;

                if (list[i] == value) {
                    return true;
                }
            }
        }
    }
    return false;
}

void insertion_sort(long list[], long size) {
    long n = size;
    for (long i = 1; i < n; i++) {
        long j = i;
        while (j > 0 && list[j-1] > list[j]) {
            long temp = list[j];
            list[j] = list[j-1];
            list[j-1] = temp;
            j = j - 1;
        }
    }
}

void insert(long* list, long size, long value) {
    list[size-1] = value;
    insertion_sort(list, size);
}

#endif

0 个答案:

没有答案