请教C编程高手!!
各位ggjj:你们好!我是个greenhand,对编程只是一知半解。我的问题怎样用折半查找法编一程序,输入一个数,要它插进原数组,按原大小顺序排列输出。 小弟将感激涕零!!!
我建议最好用二叉排序树来实现该功能比较方便,因为插入数据时不需要移动其它数据元素,而用数组的话一定要移动,其实数组比较适合需要经常查询而较少修改的情况。 下面我先给出数组查询函数,然后再实现插入功能 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;} } 主程序我就不写了,当然更没有编译了。
如果有什么问题欢迎提出。我会努力帮忙解决。本人 。
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>