快速排序后再进行二分查找为什么找不到该数啊,代码可以跑通,但是结果不对啊

#include<iostream>
#include<algorithm>
#include<cstring>

using namespace std;

const int N=5;

bool cmp(int a,int b)
{
    return a>b;
}

int main(void)
{
    int a[N],b[N],m;
    int low=0,high=N-1,mid;
    cout<<"请输入一组(5个)数据:"<<endl;
    for(int i=0;i<N;i++)
    {
        cin>>a[i];    
    }    
    sort(a,a+N,cmp);    
    for(int i=0;i<N;i++)
    {
        cout<<a[i]<<" ";    
    }
    cout<<endl;    
    cout<<"请输入要查找的数:"<<endl;
    cin>>m;
    while(low<=high)    
    {
        mid=(low+high)/2;
        if(m==a[mid])
        {
            break;
        }        
        else if(m>a[mid])
        {
            low=mid+1;
        }
        else
        {
            high=mid-1;
        }
    }
    if(low>high)
    {
        cout<<"该数未找到"<<endl;
    } 
    else
    {
        cout<<"该数的数组下标为:"<<mid<<endl;
    }
    return 0;
}

38行应该是小于号