练习 3-1 在上面有关折半查找的例子中,while循环语句内共执行了两次测试,其实只要一次就足够(代价是将更多的测试在循环外执行)。重写该函数,使得在循环内部只执行一次测试。
2017-07-24 11:43
1126 查看
C语言程序设计(第二版) 练习3-1 个人设计
练习 3-1 在上面有关折半查找的例子中,while循环语句内共执行了两次测试,其实只要一次就足够(代价是将更多的测试在循环外执行)。重写该函数,使得在循环内部只执行一次测试。
代码块#include <stdio.h> int binsearch(int x, int v[], int n); main() { int x = 3; int v[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int n = 10; int a; a = binsearch(x, v, n); printf("%d\n", a); return 0; } int binsearch(int x, int v[], int n) { int low, high, mid; low = 0; high = n - 1; mid = (low + high) / 2; while((low <= high) && (x != v[mid])){ (x < v[mid]) ? high = mid + 1 : low = mid + 1; mid = (low + high) / 2; } if (x == v[mid]) return mid; else return -1; }
如果程序设计有错误或更简洁的方法,欢迎并感谢您指正出示,谢谢!
相关文章推荐
- 练习 3-1 在上面有关折半查找的例子中,while循环语句内共执行了两次测试,其实只要一次就足够(代价是将更多的测试在循环外执行)。重写该函数,使得在循环内部只执行一次测试。
- 循环语句至少执行一次do-while
- 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次是使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有人任何单词是重复出现的。
- JavaSE教程-04Java中循环语句for,while,do···while-练习
- C#循环语句-先执行后判断-do...while循环
- shell 脚本中while 循环只执行一次的问题
- java for循环里面执行sql语句操作,有效结果只有一次,只执行了一次sql
- C#循环语句-先判断后执行-while循环
- MySQL和MSSQl使用While 语句循环生成测试数据
- JavaSE教程-04Java中循环语句for,while,do···while-练习2
- 练习2-2 在不使用运算符&&或|| 的条件下编写一个与上面的for循环语句等价的循环语句
- MySQL与MSSQl使用While语句循环生成测试数据的代码
- Python while、for、生成器、列表推导等语句的执行效率测试
- 练习 2-2 在不使用运算符&&或||的条件下编写一个与上面的for 循环语句等价的循环语句。
- java for循环里面执行sql语句操作,有效结果只有一次,只执行了一次sql mybatis 循环执行update生效一次 实际只执行一次
- PDOstament对象执行execute()函数,只要是sql语句正确都是返回true
- Python While循环语句 Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为: while 判断条件:
- PDOstament对象执行execute()函数,只要是sql语句正确都是返回true
- while循环语句中break和continue语句的作用范围测试
- while语句循环一次break