中易网

如果用C语言编写一个程序实现以下功能: 1、产生N个随机数(N可以更改) 2、用选择排序和堆排

答案:2  悬赏:70  
解决时间 2021-02-28 07:12
如果用C语言编写一个程序实现以下功能:
1、产生N个随机数(N可以更改)
2、用选择排序和堆排序对产生的随机数进行排序
3、计算两种排序算法各自的时间
(急急急!!!!!!!)
最佳答案
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//获取N个0~999的随机数,方便打印阅读
int *getRandNum(int n)
{
 int i;
 int *p;

 p=(int *)malloc(sizeof(int)*n);
 srand(time(NULL));
 for (i=0; i<n; i++)
 {
  p[i] = rand()%1000;//随机数范围可修改这里。
 }
 return p;
}
void selection(int *src, int len)
{
 int i, j, k, temp;

 for(i=0; i<len; i++)
 {
  for (j=i+1, k=i; j<len; j++)
  {

   if(src[k] > src[j])
   {
    k=j;
   }
  }
  temp=src[i];
  src[i]=src[k];
  src[k]=temp;
 }
}
void display(int *src, int len)
{
 int i;

 for (i=0; len > 0 && i<len; i++)
 {
  printf("%3d ", src[i]);
 }
 printf("\n");

}
#define NUM  20
int main(void)
{
 int *data;

 data = getRandNum(NUM);
 display(data, NUM);
 selection(data, NUM);
 display(data, NUM);
}
全部回答
#include <stdio.h> #include <time.h> int main() { int a[15] = {0}; int count = 0; srand(time(NULL)); while ( 1 ) { int r = rand()%15 + 1; if (++a[r] > 1) continue; else { printf("%02d ", r); if (count++ > 15) break; } } return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
弘朔人力资源服务有限公司地址有知道的么?有
请大家帮下忙 !!石油专业的术语!请教大家
一块长方形地的周长是120米,其中宽比长短3/1
仁和园地址在哪,我要去那里办事
魅族mx4小影保存的视频图库怎么没有
莱斯艺术教育天河分校地址在什么地方,想过去
你这个人好恶心的,把我骗来给你评论,我评论
打120但是我在家动不了开不了门怎么办
吉马国际酒廊地址在哪,我要去那里办事
入职体检在上海第一人民医院松江的南院可以做
蜡笔小新上映了多少年
红米note4G联通合约版能不能用移动4g卡
恒丰机械有限公司地址在哪,我要去那里办事
集群e家吉安达毛巾店这个地址在什么地方,我
我老婆生了儿子,可以把孩子的户口上在娘家啊
推荐资讯
小学六年级,课文,奇异的琥珀的思维导图写应
抖森的甩咚舞是什么?
木棉花可以干嘛
请问 根据意思写出成语:极度劳心苦思
男职工在试用期可享受陪产假吗
请问水利工程测量和土木工程测量得区别在哪
卓一电脑科技怀集店地址有知道的么?有点事想
户口迁移记录
枸杞过期了几个月还能泡茶喝吗?没开封
无心再爱什么意思
钢板网1.2×9×25是什么意思?预埋件M5-115是
求助,正在购买二手房,刚签完订房合同,这征
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?