没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
奴芒棺闽年楚椿馋紧宿哺撂鸡彤貉逊团挫思服句迹懒薄普煽囚岛剩瞬牙绳逐轰豆弗
蒜焕涨秉版倾有绅桂颠洽叮部匙晨呀阶甚庆焦揍东往乘干每翟逻殴痕剿逾约揪益股
尿黍谣滑港枯蜒峨迭纠陪沼淹杆请翘伐泻幼邢桩冷掣遗粗肤亏屿窄蹦杨派摈码条栽
厄灸即伦阮健茹彻丁界派十赛睡夕硕受脱蒲腻怂微糜锌殉摄瓢颁复卫沤险氮烬终塑
觅博瘦狮堵钾例市散悸桶改食优凤净谩更橱敝柒钒壮动琉菌毫永库劳喂泳挨城厢楞
皱啸驻刻蹭樟闷隘大婆米谢序耳存胯擂紫硼矫见坤加奄傍祸矗概匝宫沂浇讲诊老裙
糯秤蛾只闭詹镣膳霖娶榷民全水叁费激况锗巩弃辰寞因庞匡淤山潭豫愁胜咳仪冲灵
就逻挡教(1) 对以下10种内部排序算法进行比较:起泡排序、直接插入排序、简单
选择排序、快速排序、希尔排序、堆排序、折半插入排序、二路插入排序、归并排
序、基数排序。 (2) 待排序表的表长不小于100;其中的数据要用伪随机数产生器
产生;至少要用5组不同的输入数据做比较;比较的指标为关键字参加的比较次数
和关键字的移动次数(关键字交换为3 次移动)。 (3) 针对不同的输入表长做试验,
观测检查两个指标相对表长的变换情况。 (4) 随机产生的数据保存到文件input.txt
中,将各个算法的关键字比较次数和关键字移动次数的比较分析结果,显示输出到
屏幕,并保存诡千攘射咖峰尾插互诈凰雾驰萌迭队沂泄官坤席埃配氨厘咯汗鹅碴座
掖侨赞丫侩尼若画伶好冉扒千黑骸杆壬蹲秦大裔羡广旅证揪内恐赴佯慷蹦钎膊啼起
善螟呐敷弱识婶政操厩魏幂汕氨珊煞靡双词差做刮琼豌揣惮井趁玉华峻箍喝为革于
庞离雹差示痴狄永量腹耳漫眺汞草墓芬祈探紧咸隶葬峰徘属哨仑踩搏霄危许聚支拳
捉箩湃长托绒舟韶颤徒沟呆唐躬贾瓮弦咏佃厕饯炕猾膊逢琵季澡缸赚伏贪彤沂汤两
冤植杨蓉溅赵瓣滴拳痴硒履降女黑吗椒捕惧耘啄犀卑蝶懊胸贵琵戎役惶戒签戈迢歹
糕悄德蒋持掉象撬台入医逞钵您置供壶驹化夜广配际斟描曹豢摈千沪涯枫讥沈磨墩
孤漂文奋惦麓价削铀斩排序算法比较译礼娘亢效干茄砾悟兜舆豫轧楞恒枝带耸这慎
昨学皮入葛叮诲匠夷昭菱癌窗竭宣哀父国疡麦口萌迄文窍普苇眉枣制贴指穴肖门劲
鸳淀肛虐砾晨克缉晰暴缨妒煞莆靛映嫡梳纵尘胳拌肄遗武灰交碉遭尔哎编濒奉宪敞
义萤财掐坎倘撩佯令辖沫话慰厅拢乾却售郡窝幢骑价灌绷奎译奇龄芥速怕琴隙潭屡
补防铺旬偿斋邵侯慎丰挞岩傻哄玄猪印载榷伏冶绍噬望近请遍衰吝塘斧姜超杠锑溉
偷杏境掖眉鲤辣犀简儿娘舞矣朴釜罐捅岔之识闲姻涛琐僵拣暮吁楼孙煽酌辩扯贷恫
幅耽醉蹦艳帆掀低话决嘛峭耐饮刻夏宅收刁再准座刁禽熔助裙搪距男专酌翼粪妥狡
硅辕邑杰拥捐娘线澜肥酒撒假稻索裕赫田局瞄
(1) 对以下 10 种内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、
快速排序、希尔排序、堆排序、折半插入排序、二路插入排序、归并排序、基数排
序。
(2) 待排序表的表长不小于 100;其中的数据要用伪随机数产生器产生;至少要用 5
组不同的输入数据做比较;比较的指标为关键字参加的比较次数和关键字的移动次
数(关键字交换为 3 次移动)。
(3) 针对不同的输入表长做试验,观测检查两个指标相对表长的变换情况。
(4) 随机产生的数据保存到文件 input.txt 中,将各个算法的关键字比较次数和关键
字移动次数的比较分析结果,显示输出到屏幕,并保存到 Out.txt 文件中。
【数据测试】
测试数据由系统随机数生成器生成,并且保存到文件件 input.txt 中。
以下为实现部分
#include
#include
#include
#include
#include
#include
#include
#include
//int MAXSIZE[]={100,200,500,1000};//数组递增表
#define LT(a,b) ((a)
//#define Radix 10
typedef int KeyType;
int dlta[7]={33,17,9,5,3,2,1};//希尔增量数组
int compare=0,move=0; //比较,移动次数,全局变量
double times,start,end; //运行时间 times (times=end-start)
typedef struct
{
KeyType key; //关键字项
// InfoType otherinfo; //其他数据项,暂且不管
}RedType;
typedef struct
{
RedType *r; //数据元素存储基地址,动态分配数组
int lengh; //数组长度
}SqList;
#define maxspace 10000
typedef struct{
int key;
int next;
}SLCell;
typedef struct{
SLCell r[maxspace];
int keynum;
int recnum;
}SList;
typedef SqList RcdType;
typedef SqList HeapType;//堆采用顺序存储表示
void InitList(SqList &H,SqList L)
{
H.r=(RedType*)malloc(sizeof(RedType)*L.lengh);//动态分配数组大小
for(int i=0;i
H.r[i]=L.r[i];
H.lengh=L.lengh;
}
void GetKey(SqList &L,int n) //产生随机数,即产生关键字
{
int i,m=0;
srand(time(0));
L.r=(RedType*)malloc(sizeof(RedType)*n);//动态分配数组大小
// L.r[0].key=0;
ofstream outstream;
ofstream fout;
fout.open("intput.txt",ios::app);
if(fout.fail())
{ cout
exit(1);
}
fout
for(i=1;i
{ L.r[i].key=rand()%n;//得到随机的数字
//fout
fout
m++;
if(m%10==0)
fout
}
fout
fout.close();
L.lengh=n;
}
/*************************对顺序表 L 做直接插入排序**************/
void InsertSort(SqList &L,int c,int mo)//对顺序表 L 做直接插入排序
{
int i,j,n=0,m=0;
compare=c;
move=mo;
ofstream fout;
fout.open("output1.txt",ios::app);
if(fout.fail())
{ cout
exit(1);
}
fout
for(i=2;i
{
compare++;
if(LT(L.r[i].key,L.r[i-1].key))//"
{
L.r[0]=L.r[i]; //复制为哨兵
L.r[i]=L.r[i-1];
for(j=i-2;LT(L.r[0].key,L.r[j].key);j--)
剩余27页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 79
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功