在数组中查找元素和外观数量

时间:2012-05-27 00:46:02

标签: c++ search

我需要帮助按升序查找排序列表中元素的出现次数。

我设置了以下代码,但是我在最后一行代码中的“预期参数声明符”结尾处收到错误。它也说我以前没有函数binarySearch的原型。这甚至意味着什么?我查了一下,我在开始时声明了int binary,但我没有运气。我真的不知道为什么这段代码没有运行,我花了两个多小时调试。

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;  


//sort then search


int binarySearch(int arr[], int value, int left, int right) {
    while (left <= right) {
        int middle = (left + right) / 2;

        if (arr[middle] == value)
            return middle;
        else if (arr[middle] > value)
            right = middle - 1;
        else
            left = middle + 1;
    }

    return -1;

}

int main()  
{  
    int a[] = {12,3,4,4,4,5,6,7};

    int num;  

    num = sizeof(a)/sizeof(int);

    for(int i=0; i<num; i++)  
        cout<<a[i]<<" ";  
    cout<<endl;

    int value;

    cout<<"Enter a value you want to find in the array."<<endl;
    cin>>value;

    cout<<"The element is at "<<int binarySearch(int a[], value, 0, int num);
}  

1 个答案:

答案 0 :(得分:1)

这不是你怎么称呼一个功能。您不能只复制函数定义行并替换一个或两个参数。将该行替换为:

cout<<"The element is at "<<binarySearch(a, value, 0, num);

注意:这不会解决算法本身的任何问题,只是解决它的问题。