YUc787844035 发表于 2019-8-7 17:55:29

考研题求大佬助!!!

本帖最后由 YUc787844035 于 2019-8-7 17:56 编辑

线性表(a1,a2,...,an)中元素递增有序且按顺序存储于计算机内的数组a中。要求设计一算法用函数实现下列功能:

(1) 用最少时间在表中查找值为x的元素;
(2) 若找不到则将其插入表中使其表中元素仍然递增有序

YUc787844035 发表于 2019-8-7 17:56:56

void search_exchangeinsert(int sqlist[];int length;int x)
{
    int low=0,high=length-1,mid;
    while(low<=high)
    {
      mid = (low+length)/2;
      if(sqlist==x)
            break;
      else if(sqlist<x)
            low = mid+1;
      else
            high = mid-1;
    }//查找成功
    if(low>high)
    {
      for(int p=length;p>=high;p--)
      {
            sqlist = sqlist;
      }
      sqlist = x;
    }
}

YUc787844035 发表于 2019-8-7 17:57:38

我这个算法有问题吗。
感谢大佬们

YUc787844035 发表于 2019-8-7 17:58:53

YUc787844035 发表于 2019-8-7 17:57
我这个算法有问题吗。
感谢大佬们

我这是写试卷上 不在电脑运行 可以这么写吗

micolar 发表于 2019-8-7 19:53:03

本帖最后由 micolar 于 2019-8-7 19:56 编辑

没问题吧 只是数组长度有限的话 你新加入的会不会超过数组


YUc787844035 发表于 2019-8-7 20:49:41

micolar 发表于 2019-8-7 19:53
没问题吧 只是数组长度有限的话 你新加入的会不会超过数组

那改成int函数
if(length>=maxsize)
return 0;
页: [1]
查看完整版本: 考研题求大佬助!!!