
c语言如何用折半查找法查找并统计人数啊?急呀!
“查询功能:打开总成绩排序文件,用折半查找法统计出给定分数的人数并显示。”只差这个不会做了!这是我们的课程设计,学生成绩管理系统!我只会按学号、姓名和成绩查找,就是不知道...
“查询功能:打开总成绩排序文件,用折半查找法统计出给定分数的人数并显示。” 只差这个不会做了!这是我们的课程设计,学生成绩管理系统!我只会按学号、姓名和成绩查找,就是不知道怎样用折半查找法查找并统计人数!
展开
1个回答
展开全部
折半法查找只是用于一种情况,就是数据是按顺序排列的
也就是说数据时排好序的,要不然没法用这个办法查找
算法分三步,一步是判断要查找的数是否在这些数据当中,因为是顺序的,所以判断两端
如果不在,直接break就可以,没有必要查找了
第二步是判断是否是两个端点,要是两个端点的一个,那也不用查找了
第三步就是循环查找,两个指针也可以,用数组下标也可以
这样判断如ab两个指针式只想头尾,那么判断第三个指针,也就是(a+b)/2是否是要找的数据,是的话跳出循环,不是判断(a+b)/2和a b的大小,吧中间指针赋值给a或者b,循环吧
如果a-b==1了还没有查找到,那么这个数就不在这些数据当中,如果中间指针是要查找的数据,那么就跳出吧
也就是说数据时排好序的,要不然没法用这个办法查找
算法分三步,一步是判断要查找的数是否在这些数据当中,因为是顺序的,所以判断两端
如果不在,直接break就可以,没有必要查找了
第二步是判断是否是两个端点,要是两个端点的一个,那也不用查找了
第三步就是循环查找,两个指针也可以,用数组下标也可以
这样判断如ab两个指针式只想头尾,那么判断第三个指针,也就是(a+b)/2是否是要找的数据,是的话跳出循环,不是判断(a+b)/2和a b的大小,吧中间指针赋值给a或者b,循环吧
如果a-b==1了还没有查找到,那么这个数就不在这些数据当中,如果中间指针是要查找的数据,那么就跳出吧
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询