爱问知识人 爱问教育 医院库

请教C编程高手!!

首页

请教C编程高手!!

各位ggjj:你们好!我是个greenhand,对编程只是一知半解。我的问题怎样用折半查找法编一程序,输入一个数,要它插进原数组,按原大小顺序排列输出。
小弟将感激涕零!!!

提交回答
好评回答
  • 2005-06-16 17:30:26
      我建议最好用二叉排序树来实现该功能比较方便,因为插入数据时不需要移动其它数据元素,而用数组的话一定要移动,其实数组比较适合需要经常查询而较少修改的情况。
    下面我先给出数组查询函数,然后再实现插入功能
    int query(int array[],int low,int high,int num)
    /*此函数也可以用循环改写*/
    {
    if(low>high)return high;
    if(array[(low+high)/2]==num)
     return (low+high)/2;
    if(array[(low+high)/2]>num)
     return query(array[],(low+high)/2,high-1,num);
    else
     return query(array[],low+1,(low+high)/2,num);
    }
    void move(int array[],int high, int num)
    /*注意此处high=数组实际存储数值个数+1*/
    {
    for(;high>=0;high--)
     if(high==0)
       {array[0]=num;break;}
     if(array[high-1]>num)
       array[high]=array[high-1];
     else
       {array[high]=num;break;}
    }
    主程序我就不写了,当然更没有编译了。
      如果有什么问题欢迎提出。我会努力帮忙解决。本人 。

    1***

    2005-06-16 17:30:26

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 178-197
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):