鱼C论坛

 找回密码
 立即注册
查看: 2021|回复: 14

函数没有明白进行了什么数学过程,希望大神解答

[复制链接]
发表于 2015-8-25 15:32:43 | 显示全部楼层 |阅读模式
50鱼币
int CProcessFunction::locate(double *xx,int n,double x,int j)
{
        int jl,ju,jm,is=1;
        jl = is-1;
        ju = n;
        if(xx[n] <= x)
        {
                j = n;
                return j;
        }
        while(ju-jl > 1)
           {
                   jm = (ju+jl)/2;//中值
                   if(((xx[n] > xx[is]) && (x > xx[jm])) || ((xx[n] <= xx[is]) && (x <= xx[jm])))
                           jl = jm;
                   else
                           ju = jm;
           }
           j = jl;
           return j;
}
请问整个函数进行了什么数学运算?

最佳答案

查看完整内容

调用前提:数组xx已经是按照从小到大排序过的。 该函数寻找数组xx中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-25 15:32:44 | 显示全部楼层
调用前提:数组xx已经是按照从小到大排序过的。
该函数寻找数组xx中<=参数x的元素个数(因为已经排序过,也可以认为定位x在数组中的大小位置)

最后说下,这个函数写的爆弱了。。。
首先,参数j根本没用
其次,这个成员函数应该用const修饰
再次,变量名能写得再乱点吗?
最后,函数名能不能用BinarySearch?这样内行人就知道你要干什么了、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-25 18:47:46 | 显示全部楼层
能不能贴出完整的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-8-25 18:55:52 | 显示全部楼层
melttt 发表于 2015-8-25 18:47
能不能贴出完整的代码

源代码太长了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-25 22:22:17 | 显示全部楼层

你用上面那个插入代码选项试试或者发一份文本文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-26 10:49:25 | 显示全部楼层
在 写函数时。最好也函数名与功能联系上。参数也要标明用法。这样就不用写注释别人也给看明白。如果 你不太明白。可以调试一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-26 14:21:31 | 显示全部楼层
这代码写得不是很清楚,变量名不明白是什么意思。建议用printf()调试.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-28 13:15:06 | 显示全部楼层
感觉好复杂,你试试跟着调试多走几遍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-2 15:44:53 | 显示全部楼层
感觉逻辑很混乱,写的时候最好在必要的部分写上注释
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-15 14:04:33 | 显示全部楼层
print调吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-17 13:53:32 | 显示全部楼层
应该是二分查找
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-20 19:13:47 | 显示全部楼层
我就看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-21 09:56:18 | 显示全部楼层
应该是二分查找吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-29 14:11:25 | 显示全部楼层
看完之后惊起我一身冷汗,看来以后一定要好好写注释,多打空格和回车。
这也太难看了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-6 19:58:43 | 显示全部楼层
还是得注释一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 11:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表