#include <stdlib.h>#include <stdio.h>#include <time.h> //使用当前时钟做种子#define N 100void Produce(int *dat) //产生N个随机大小的整数...{ int i; srand( (unsigned)time( NULL ) );//初始化随机数 for( i = 0; i < N; i++ ) dat[i] = rand(); }void Output(int dat[]) //输出函数...{ int i; for (i = 0; i < N; i++) printf("dat[%d]=%d ",i,dat[i]); printf(" ");}void Swap(int &a, int &b) //交换两个变量的值...{ int temp; temp = a; a = b; b = temp;}int Partition(int *dat,int p,int r)//把 < x 的元素换到左边的区域,把 > x 的元素换到右边的区域...{ int i = p, j =r + 1; int x = dat[p]; while (1) ...{ while(dat[++i]<x && i<r); while(dat[--j]>x); if(i>=j) break; Swap(dat[i],dat[j]); } dat[p] = dat[j]; dat[j] = x; return j;}void QuickSort(int *dat,int p,int r) //快速排序...{ if(p<r) ...{ int q = Partition(dat,p,r); QuickSort(dat,p,q-1); QuickSort(dat,q+1,r); }}int BinarySearch(int *dat,int &data, int n) //二分查找...{ int left = 0; int right = n-1; while (left <= right) ...{ int middle = (left+right)/2; if(data==dat[middle]) return middle; if(data > dat[middle]) left = middle + 1; else right = middle - 1; } return -1;}void main( void )...{ int data,temp,n; n = N; int *dat; dat = new int[n]; Produce(dat); Output(dat); QuickSort(dat,0,N-1); Output(dat); printf("请输入要查找的数据:"); scanf("%d",&data); temp = BinarySearch(dat,data,n); if(temp==-1) printf("没有找到! "); else printf("找到了,%d=dat[%d]…… ",data,temp);}