1.线性排序算法

//线性排序算法:前提数据是无序的
//函数参数:要查找的数组,查找的数字,数组长度
int LineSearch(long num[],long x,int n)
{
    int i;
    //循环遍历数组
    for(i=0; i<n; i++)
        {
            //若在查找时找到
            if(num[i] == x)
            {
                //返回下标
                return i;
            }
        }
        //若找不到,则返回-1
        return -1;

}

2.二分排序算法

线性、二分查找算法

//二分排序算法:前提数据是按照顺序排好的

//函数参数:要查找的数组,查找的数字,数组长度

int BinarySearch(long num[],long x,int n)
{
    int low = 0,high = n-1,mid;
    while(low <= hign)
        {
            mid = (high + low) / 2;
            if(x > num[mid])
                {
                    low = mid + 1;
                }
            else if(x < num[mid])
                {
                    high = mid - 1;
                }
            else
                {
                    return mid;
                }
        }
        return -1;

}

【注意】但此代码有一个缺陷,若high + low的和溢出,使mid成为一个负数;那么则利用减法替代加法——mid = low + (high - low)/2

相关文章:

  • 2022-12-23
  • 2021-12-11
  • 2022-12-23
  • 2022-12-23
  • 2021-08-02
  • 2022-12-23
  • 2021-06-13
猜你喜欢
  • 2021-07-15
  • 2021-06-22
  • 2021-12-10
  • 2021-07-24
  • 2021-10-31
  • 2021-11-11
  • 2022-01-15
相关资源
相似解决方案