您的位置:首页 > 其它

第九章中位数和顺序统计学之“寻找第2小元素”(练习9.1-1待改进)

2012-01-17 15:09 232 查看
在最坏的情况下,利用n+(lgn的上限)-2次比较,即可找到n个元素中的第2小元素。(提示:同时找最小元素)

#include <string.h>
#include <time.h>

#define BUFFER_SIZE 10

void FirstAndSecond(int *a,int len,int *first,int *second)
{
int i=0;
int j=0;

if(a[0]<a[1])
{
*first=a[0];
*second=a[1];
}
else
{
*first=a[1];
*second=a[0];
}

for(i=2;i<len;i++)
{
if(*first>a[i])
{
*second=*first;
*first=a[i];
}
else
{
if(*second>a[i])
{
*second=a[i];
}
}
}
}

int main()
{
int i=0;
int min=0;
int max=0;
int a[BUFFER_SIZE];
printf("随机生成的数组:\n");
srand((unsigned)time(NULL));
for(i=0;i<BUFFER_SIZE;i++)
{
a[i]=rand()%100;//归一化
printf("%d  ",a[i]);
}
printf("\n");

FirstAndSecond(a,BUFFER_SIZE,&min,&max);
printf("最小值:min=%d\n最大值:max=%d\n",min,max);

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐