笔者初学
以博客自查
长度为n的数组找第k大的数
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAXN 1000
int Arri[MAXN];
int Brri[MAXN];
/* 编写printarray函数*/
void printarray(int ARRI[],int len)
{
for(int i=0;i<len;i++)
{
printf("%d,",ARRI[i]);
}
printf(";\n");
}
/* 编写sort函数*/
void sort(int ARRI[],int len)
{
int temp;
for(int i=0;i<len;i++)
{
for(int j=i+1;j<len;j++)
{
if(ARRI[i]<ARRI[j])
{
temp=ARRI[i];
ARRI[i]=ARRI[j];
ARRI[j]=temp;
}
}
}
}
/* 编写main函数*/
int main( void )
{
int k;
int n;
clock_t start,finish;
double duration;
/* 插入你的代码*/
printf("input your k \n:");
scanf("%d",&k);
printf("input your n \n:");
scanf("%d",&n);
/* 测试sort函数*/
printf("test for sort\n");
int Crri[4]={12,53,85,87};
sort(Crri,4);
printarray(Crri,4);
for(int i=0;i<n;i++)
{
printf("please input a number:");
scanf("%d", &Brri[i]);
if(i<k)
{
Arri[i]=Brri[i];
}
}
/* 测量一个事件持续的时间*/
start = clock();
sort(Arri,k);
for(int i=k;i<n;i++)
{
if(Brri[i]>Arri[k-1])
{
Arri[k-1]=Brri[i];
sort(Arri,k);
}
}
printf("your input array is");
printarray(Brri,n);
printf("the special array is");
printarray(Arri,k);
printf("what you want is:\n%d\n",Arri[k-1]);
/* 终止你的代码*/
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "Time is " );
printf( "%f seconds\n", duration );
system("pause");
}