首页

文章

数据结构课程设计综合排序代码及实验报告书。

发布网友 发布时间:2022-04-19 22:57

我来回答

2个回答

热心网友 时间:2023-10-04 06:59

#include<stdio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 200
double maopao(int B[],int M)//冒泡排序
{
clock_t start, finish;
double time; // 测量一个事件持续的时间
start = clock();
FILE *fp1;
int i,j,t;
for(i=0;i<M-1;i++)//排序
for(j=0;j<M-i-1;j++)
if(B[j]>B[j+1])
{
t=B[j];B[j]=B[j+1];B[j+1]=t;
}
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
fp1=fopen("a","wb");
printf("经排序后序列为:\n");
for(i=0;i<M;i++)//输出排序后结果
{
if(i%10==0)printf("\n");
printf("%d ",B[i]);
fwrite(&B[i],sizeof(int),1,fp1);//把数据以二进制形式存入磁盘文件
}fclose(fp1);
printf("\n");
printf( "冒泡排序法运行时间:" );
printf( "%f seconds\n", time );
return time;
}
double charru(int A[], int len)//插入排序
{
clock_t start, finish;
double time; // 测量一个事件持续的时间
start = clock();
FILE *fp2;
int i,j,high,low,mid,temp;
for(i=1;i<len;i++)
{
temp=A[i];
low=0;high=i-1;
while(low<=high)
{
mid=(low+high)/2;
if(A[0]>temp)
high=mid-1;
else low=mid+1;
}
for(j=i-1;j>high;j--)
A[j+1]=A[j];
A[high+1]=temp;
}
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
fp2=fopen("b","wb");
printf("经排序后序列为:\n");
for(i=0;i<len;i++)
{
if(i%10==0)printf("\n");
printf("%d ",A[i]);
fwrite(&A[i],sizeof(int),1,fp2);
}fclose(fp2);
printf("\n");
printf( "插入排序法运行时间:" );
printf( "%f seconds\n", time );
return time;
}
double xuanze(int arry[],int n)//选择排序
{
clock_t start, finish;
double time; //测量一个事件持续的时间
start = clock();
FILE *fp3;
int i,j,k,t;
for(i=0;i<n;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(arry[j]<arry[k])
k=j;
t=arry[k];
arry[k]=arry[i];
arry[i]=t;
}
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
fp3=fopen("c","wb");
printf("经排序后序列为:\n");
for(i=0;i<n;i++)
{
if(i%10==0)printf("\n");
printf("%d ",arry[i]);
fwrite(&arry[i],sizeof(int),1,fp3);
} fclose(fp3);
printf("\n");
printf( "选择排序法运行时间:" );
printf( "%f seconds\n", time );
return time;
}
int kuaisu(int*c,int low,int high)//快速排序确定枢轴位置
{
int temp,t;
temp=c[low];
while(low<high)
{
while(low<high&&c[high]>=temp)high--;
{
t=c[low];c[low]=c[high];c[high]=t;
}
while(low<high&&c[low]<=temp)low++;
{
t=c[low];c[low]=c[high];c[high]=t;
}
}
return low;
}
void kuaisu1(int *b,int low,int high)//快速排序
{
int t;
if(low<high)
{
t=kuaisu(b,low,high);
kuaisu1(b,low,t-1);
kuaisu1(b,t+1,high);
}

}
double xier(int *x, int n)//希尔排序
{
clock_t start, finish;
double time; /* 测量一个事件持续的时间*/
start = clock();
FILE *fp5;
int h, j, k, t,i;
for(h=n/2; h>0; h=h/2)
{
for (j=h; j<n; j++)
{
t = *(x+j);
for(k=j-h; (k>=0 && t<*(x+k)); k-=h)
{
*(x+k+h) = *(x+k);
}
*(x+k+h) = t;
}
}
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
fp5=fopen("e","wb");
printf("经排序后序列为:\n");
for(i=0;i<n;i++)
{
if(i%10==0)
printf("\n");
printf("%d ",x[i]);
fwrite(&x[i],sizeof(int),1,fp5);
}fclose(fp5);
printf("\n");
printf( "希尔排序法运行时间:" );
printf( "%f seconds\n", time );
return time;
}
void main(void)
{
FILE *fp4;
int i,a[N];
double min,b[5];
char ch,ch1;
for(i=0;i<30;i++)
printf("*");
printf("欢迎进入综合排序系统");
for(i=0;i<30;i++)
printf("*");
printf("\n");
srand((unsigned)time(NULL));//获取随机数
printf("获得%d个随机数:\n",N);
for(i=0;i<N;i++)
a[i]=(rand()%12767+20000)%32767;
for(i=0;i<N;i++)//输出随机数
{
if(i%10==0)printf("\n");
printf("%d ",a[i]);
}
printf("\n");

do
{
for(i=0;i<80;i++)
printf("=");
printf("\t1.冒泡排序\n");
printf("\t2.选择排序\n");
printf("\t3.插入排序\n");
printf("\t4.快速排序\n");
printf("\t5.希尔排序\n");
printf("\t6.方法比较\n");
printf("\t7.退出\n");
printf("\t请选择排序方法:\n");
do
{
ch=getchar();
}while(ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5'&&ch!='6'&&ch!='7');
switch(ch)
{
case'1': b[0]=maopao(a,N);break;
case'2': b[1]=xuanze(a,N);break;
case'3': b[2]=charru(a,N);break;
case'4':
clock_t start, finish; //测量一个事件持续的时间
double time;
start = clock();
kuaisu1(a,0,N-1);
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
fp4=fopen("d","wb");
printf("经排序后序列为:\n");
for(i=0;i<N;i++)
{
if(i%10==0)printf("\n");
printf("%d ",a[i]);
fwrite(&a[i],sizeof(int),1,fp4);
}fclose(fp4);
printf("\n");
finish = clock();
time = (double)(finish - start) / CLOCKS_PER_SEC;
b[3]=time;
printf( "快速排序法运行时间:" );
printf( "%f seconds\n", time ); break;
case'5': b[4]=xier(a,N);break;
case'6': min=b[0];
for(i=0;i<5;i++)
{
if(min>b[i])
min=b[i];
}
ch1='a';
i=0;
while(i<5)
{

if(min>=b[i])
switch(ch1)
{
case 'a':printf("较好的算法是冒泡排序\n");break;
case 'b':printf("较好的算法是选择排序\n");break;
case 'c':printf("较好的算法是插入排序\n");break;
case 'd':printf("较好的算法是快速排序\n");break;
case 'e':printf("较好的算法是希尔排序\n");break;
}
ch1++;i++;
}break;
case'7': {
printf("\n");
for(i=0;i<37;i++)
printf("*");
printf("谢谢 !");
for(i=0;i<37;i++)
printf("*");
exit(0);
}
default:exit(1);
}
}while(1);
}

热心网友 时间:2023-10-04 07:00

需要对条目进行自动排序,当增加或减少条目时,下面的会自动进行再排序,你回答中的格式--样式和格式的操作,我不是很明白,要怎么操作才能实现自动排序。
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 php课程设计Dreamweaver技术是什么? 100分求一份数据库原理课程设计的实验报告 PHP学生成绩管理系统综合实验报告 PHP课程设计报告 《C语言程序设计》课程设计实验报告 医药连锁店JAVA程序 实验报告的格式怎么写 网络课程设计实验报告 《网页设计》实验报告 php 谁知道PHP实训报告怎么写 急啊 基于java jsp asp php vb安卓系统毕业设计与实现论... 十进制329怎么化成二进制。求过程 oppo手机的备份与恢复软件怎么下载 OPPO reno2Z如何恢复QQ聊天记录? 手机QQ聊天记录的文件夹不小心被我删了,怎么找回... oppo手机如何恢复备份数据 OPPOr15QQ卸载了怎么找回QQ聊天记录? oppo手机删除的qq聊天记录可以恢复吗? oppo手机数据恢复精灵 oppo手机备份与恢复在哪里 电子技术课程设计实验报告 求ASP课程设计和报告啊 数据结构实验的实验报告怎么写 C#课程实训实验报告小结怎么写? C++语言课程设计实验报告,题目是《同学录查询系... 十进制329.625转化二进制? 十万抖币换多少人民币 100000抖音音浪可以换多少钱 10万音浪个人可以拿多少钱 与十进制37.9所对应的二进制数是多少?(小数部分保留小数点后2位) win10电脑充不进电一直显示0% 为什么我电脑win10虚拟内存为0怎么还原 win10正在清理卡在0 win10开机蓝屏卡在0% 不开机? WIN10磁盘分为磁盘0(C,D盘)和磁盘1(E,F盘),现... win10系统安装卡在正在复制文件0%? win10如何保存桌面旋转 win10蓝屏开不了机 本来在看视频,突然蓝屏,然后... win10系统磁盘使用率过高,以及为什么磁盘后显示0 正版Win10用了好一段时间了,昨天开始不断蓝屏,用...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com