#include <iostream> #include <cmath> #include <ctime> #include "time.h"#define N 120using namespace std; // 使用RAND_MAX void main(){ srand(time(0)); __int64 i,a=0,b=N,c=N/2,k[N],count; int flag=0; clock_t start,finish; double during; start=clock(); for (i=0;i<N;i++) {
k[i]=(double)rand()/RAND_MAX*N;//产生0-1直接均匀的double型随机数再乘以N // printf("%ld ",k[i]); } finish=clock(); during=(double)(finish-start)/CLOCKS_PER_SEC; printf("使用的时间为:%.2f/n",during); while(a<b) { count=0; for (i=0;i<N;i++) { if (k[i]<=c) { count++; } if (count==N/2) { b=c; c=(a+b)/2; break; }
} if (count<N/2) { a=c; c=(a+b)/2; if (a+1==b) { c=b; break; } } } printf("第N/2个数是%ld/n",c); printf("使用的时间为:%.2f/n",during);
}