两个if和if-else(《编程珠玑(续)》第1章)
来源:互联网 发布:百度竞价排名 seo 编辑:程序博客网 时间:2024/06/11 23:59
对于下面程序,原来是两个if语句,为了减少比较次数,改成了if-else语句,并且测试了其效果。
第2个数比max大的概率为1/2,第n个数比max大的概率为1/n,即相当于在n个位置上,把最大的数放到了第n个位置,这个概率显然是1/n。因此比较减少的数目为Hn=1+1/2+1/3+~+1/N=lnN。当N=10^9时,这个数也才是20,因此根本没有想象中的那么高的效率。
#include<iostream>#include<algorithm>using namespace std;int bigRand(){return (rand()<<15)|rand();}int main(){const int N=100000;int A[N];generate(A,A+N,bigRand);int max=INT_MIN,min=INT_MAX,k=0;for(int i=0;i<N;i++){if(A[i]>max)max=A[i];else {k++;if(A[i]<min)min=A[i];}}cout<<max<<endl<<min<<endl;cout<<"if(A[i]<min)执行次数减少了:"<<N-k<<endl;system("pause");return 0;}
0 0
- 两个if和if-else(《编程珠玑(续)》第1章)
- if 和else if
- IF 和else if
- if ...if...和if...else if...
- if......if和if......else if......else if的区别
- if...else... 和 if...else if... 或者 if...if... 和 if...else if... 有什么区别
- If语句(if…else 和 if…else if … else if … else)
- if, else if, else
- if else if else
- if (){}else if(){} else{}
- if...if 和if...else if...的区别
- if和else if和switch
- 不要if else的编程
- if 和 if...else的意义
- if和else if看清楚
- if 和 else if 的效率问题
- if-then和if-then-else语句
- if和else if的用法
- python_generator.h
- VS2010 C++环境下DLL和LIB文件目录及名称修改
- HDU 2052 Picture 绘图矩阵
- linux无法进入系统,报错Unable to load SELinux Policy,Kernel panic - not syncing:Attempted to kill init
- POJ 1149 PIGS(最大流)
- 两个if和if-else(《编程珠玑(续)》第1章)
- VPN初步学习
- welcome-file-list不起作用
- wamp中利用控制台修改mysql的root密码
- Codeforces Round #276 (Div. 2)
- vector模板用法C++ std
- C语言 单链表的基本操作
- Developer Guide
- Jetty和Maven HelloWorld