函数题:堆排序
本题要求实现一个函数,对n个数据进行排序(从小到大),只要求得到前m个最大值即可。
### 函数接口定义:
c++
void sort(int a[],int n,int m);
其中 a 、 n 、m都是用户传入的参数。 n 是数据元素个数; m 是统计个数。
### 裁判测试程序样例:
c++
#include <stdio.h>
void sort(int a[],int n,int m);
int main()
{
int i,n,m,*a;
scanf("%d%d",&n,&m);
a=new int[n+1];
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a,n,m);
for(i=n;i>n-m;i--)
printf("%d ",a[i]);
return 0;
}
/* 请在这里填写答案 */
### 输入样例:
in
10 3
12 65 45 67 32 83 23 54 29 96
### 输出样例:
out
96 83 67
答案:若无答案欢迎评论
### 函数接口定义:
c++
void sort(int a[],int n,int m);
其中 a 、 n 、m都是用户传入的参数。 n 是数据元素个数; m 是统计个数。
### 裁判测试程序样例:
c++
#include <stdio.h>
void sort(int a[],int n,int m);
int main()
{
int i,n,m,*a;
scanf("%d%d",&n,&m);
a=new int[n+1];
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a,n,m);
for(i=n;i>n-m;i--)
printf("%d ",a[i]);
return 0;
}
/* 请在这里填写答案 */
### 输入样例:
in
10 3
12 65 45 67 32 83 23 54 29 96
### 输出样例:
out
96 83 67
答案:若无答案欢迎评论