排序时间复杂度

fxyuer2004 2005-09-28 08:39:59
1、用C程序实现插入法排序;
  2、利用插入排序算法,将用户随机输入的一列数,按递增的顺序排好。
  3、输入的数据形式为任何整数,大小不限。
  4、输出的形式:数字大小逐个递增,并计算出运行时间。
最重要的是要利用时间函数和随机函数,利用随机函数随机产生4000数字,然后用time()计算出它的运行时间。
5、大侠们。有实力的动手吧!!!!!!!!!!!!
...全文
376 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
crm2000 2005-09-29
  • 打赏
  • 举报
回复
Hoho,记得include stdlib.h
xiaocai0001 2005-09-28
  • 打赏
  • 举报
回复
没有

楼主还没结帖, 就没算完
antijpn 2005-09-28
  • 打赏
  • 举报
回复
作业贴,转新手乐园
DITQ 2005-09-28
  • 打赏
  • 举报
回复
完了 ??
xiaocai0001 2005-09-28
  • 打赏
  • 举报
回复
谢谢~~
fxyuer2004 2005-09-28
  • 打赏
  • 举报
回复
xiaocai0001,我给你加分 了
fxyuer2004 2005-09-28
  • 打赏
  • 举报
回复
是啊
cdo 2005-09-28
  • 打赏
  • 举报
回复
一看就是作业不会做的.
zhouhuahai 2005-09-28
  • 打赏
  • 举报
回复
又是作业题?
这种题目还是自己动手的好.
xiaocai0001 2005-09-28
  • 打赏
  • 举报
回复
没意思~
fxyuer2004 2005-09-28
  • 打赏
  • 举报
回复
up
xiaocai0001 2005-09-28
  • 打赏
  • 举报
回复
回复人: fxyuer2004(飞跃海洋) ( ) 信誉:100

谢谢楼主,我改了啊,好像不行啊,不知道怎么回事啊??????



主  题: 排序时间复杂度
作  者: fxyuer2004 (飞跃海洋)
等  级:
信 誉 值: 100
所属社区: C/C++ C语言
问题点数: 20
回复次数: 10
发表时间: 2005-09-28 08:39:58
-----------------------
你不是楼主啊????
fxyuer2004 2005-09-28
  • 打赏
  • 举报
回复
谢谢楼主,我改了啊,好像不行啊,不知道怎么回事啊??????
starwalker 2005-09-28
  • 打赏
  • 举报
回复
做作业啊
xiaocai0001 2005-09-28
  • 打赏
  • 举报
回复
你原来的那些读入数据的语句
scanf("%d",&node);
就可以改成
node = rand();
就得到一个随机数了
xiaocai0001 2005-09-28
  • 打赏
  • 举报
回复
随机数用
srand(time(NULL));
随机一个种子

然后每调用一次
rand();就得到介于 0 - 32767 之间一个随机数了
fxyuer2004 2005-09-28
  • 打赏
  • 举报
回复
这是我中午编写的,能运行的。呵呵,但是我没有实现随机函数啊,有没有高手啊,帮我的程序该一该啊,实现随机输出数据啊,谢谢了!!!!!!!!!!
fxyuer2004 2005-09-28
  • 打赏
  • 举报
回复
/*----------------插入排序法的使用----------------------*/

#include <stdio.h>
#include <time.h>
#include <dos.h>
#include <conio.h>



void InsertSort(int *list ,int index)
{


int i,j ,k;
int insertnode; /*欲插入的数值*/
long start,stop;
long totaltime,runtime;
/*time(NULL);*/

for(i=1;i<index;i++) /*依序插入数值*/
{

/*time(&start);*/
insertnode=list[i];
j=i-1; /*欲插入数组的开始位置*/
while(j>=0 && insertnode<list[j])
{
list[j+1]=list[j];
j--;
}
list[j+1]=insertnode; /*将数值插入*/

/*time(&stop);

totaltime=stop-start;
runtime=(long)(totaltime)/(int)(list[j]); */

/*-----------打印目前排序结果------*/
/*printf("\n Current sorting result:");
for(k=0;k<index;k++)
{
printf("%3d",list[k]);
}
printf("\nnow the time is: totaltime evetime\n");
printf(" %3d %3d ",totaltime,runtime);*/
}
}

/*----------主程序----------*/
void main( )
{
int list[200]; /*设置数组最大长度为20*/
int node; /*读入输入值所使用的暂存变量*/
int i,index;

long totaltime;
long start,end;


/*random(1000);*/



printf("\n please input the values you want to sort (Exit for 0):\n");

index=0;

/*-------读取数值存入数组中--------------*/
scanf("%d",&node);
while(node!=0)
{
list[index]=node;
index=index+1;
scanf("%d",&node);
}
time(&start);
/*--------调用插入排序函数----------------*/
InsertSort(list,index );

time(&end);
totaltime = end-start;
/*---------打印最终排序结果---------------*/
printf("\n Final sorting result:\n");
for(i=0;i<index;i++)
{
printf("%3d",list[i]);
}
printf("\nthe total time is:");
printf(" %ld\t",totaltime);
printf("\n");
getchar();
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧