C程序设计语言 Exercise 3-1
2013-06-15 16:47
260 查看
Exercise 3-1. Our binary search makes two tests inside the loop, when one would suffice (at
the price of more tests outside.) Write a version with only one test inside the loop and
measure the difference in run-time.
the price of more tests outside.) Write a version with only one test inside the loop and
measure the difference in run-time.
#include "stdio.h" #include "time.h" #define MAX_LENGTH 2000000 int BinSearch1(int,int[],int); int BinSearch2(int,int[],int); int main(){ int v[MAX_LENGTH] = {0}; int i = 0; for (i = 0;i < MAX_LENGTH;i++) { v[i] = i; } clock_t stStartTime = clock(); for (i = 0;i < MAX_LENGTH;i++) { BinSearch1(i,v,sizeof(v)/sizeof(*v)); } printf("BinSearch1==>%f\n",((double)(clock() - stStartTime)) / CLOCKS_PER_SEC); stStartTime = clock(); for (i = 0;i < MAX_LENGTH;i++) { BinSearch2(i,v,sizeof(v)/sizeof(*v)); } printf("BinSearch2==>%f\n",((double)(clock() - stStartTime)) / CLOCKS_PER_SEC); return 0; } int BinSearch1(int x,int v[],int n) { int start = 0; int end = n - 1; int middle = 0; while(start <= end) { middle = (start + end) / 2; if(v[middle] < x) { start = middle + 1; } else if(v[middle] > x){ end = middle - 1; } else { return middle; } } return -1; } int BinSearch2(int x,int v[],int n){ int start = 0; int end = n - 1; int middle = 0; while(start <= end && v[middle] != x){ middle = (start + end) / 2; if(v[middle] < x) { start = middle + 1; } else{ end = middle - 1; } } return v[middle] == x ? middle: -1; }
相关文章推荐
- C程序设计语言 Exercise 2-9
- C程序设计语言 Exercise 2-10
- Java语言的基本程序设计结构
- Java语言程序设计基础篇 方法(五)
- 从标准的角度理解程序设计语言
- 广东海洋大学 电子1151 孔yanfei python语言程序设计 第十一周
- C++程序设计语言练习 10.2 一个简单的date类
- C++程序设计语言练习4.6 局部名字和外部名字的长度限制
- C++程序设计语言--第六章:表达式和语句
- Java语言程序设计-基础篇(六)正则表达式
- Java语言程序设计-基础篇(七)文本I/O
- Java语言程序设计-基础篇(十)抽象类,接口与包装类
- C++程序设计语言--第十二章:派生类
- 自己搞,带注释,适合初学者:C程序设计语言练习1-22 把较长的输入行折成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后
- java语言程序设计 第八章(8.35、8.36)
- 逻辑程序设计语言Prolog
- 【原创】C程序设计语言(2版KR) - C语言基础知识(2) 分类: Linux --- C 2014-11-21 19:21 85人阅读 评论(0) 收藏
- 程序设计语言综合设计(第 3 章)
- 程序设计语言选型指南程序设计语言选型指南
- C程序设计语言练习1-23 编写一个删除C语言程序中所有的注释语句