排序实验报告Word格式文档下载.docx
- 文档编号:22405422
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:10
- 大小:108.81KB
排序实验报告Word格式文档下载.docx
《排序实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《排序实验报告Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
一、最优服务问题
【问题描述】
设有n个顾客同时等待一项服务。
顾客i需要的服务时间为ti(1<
=i<
=n)。
应如何安排n个顾客的服务次序才能使平均等待时间达到最小?
平均等待时间是n个顾客等待服务时间的总和除以n。
【编程任务】
对于给定的n个顾客需要的服务时间,编程计算最优服务次序。
【数据输入】
输入数据:
第一行是正整数n,表示有n个顾客。
接下来的1行中,有n个正整数,表示n个顾客需要的服务时间。
【结果输出】
将编程计算出的最小平均等待时间输出在屏幕上
输入文件示例
输出文件示例
10
532.00
56121991000234335599812
【实验程序如下】
#include<
stdio.h>
voidInsertSort(inta[],intn)
{
//希尔排序
inti,j,x,gap=n/2;
floatsum=0,avg=0;
while(gap>
0)
{
for(i=gap;
i<
n;
i++)
j=i-gap;
while(j>
=0)
{
if(a[j]>
a[j+gap])
{
x=a[j];
a[j]=a[j+gap];
a[j+gap]=x;
j=j-gap;
}
else
j=-1;
}
}
gap=gap/2;
for(i=0;
sum=sum+(n-i)*a[i];
avg=sum/n;
printf("
最小平均等待时间为%f\n"
avg);
}
voidmain()
inti,n;
请输入顾客个数n的值:
"
);
scanf("
%d"
&
n);
intc[100];
请输入每个顾客的需要的服务时间:
\n"
c[i]);
InsertSort(c,n);
【实验输出】
二、众数问题
【问题描述】
给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。
多重集S中重数最大的元素称为众数。
例如,S={1,2,2,2,3,5}。
多重集S的众数是2,其重数为3。
对于给定的由n个自然数组成的多重集S,编程计算S的众数及其重数。
输入数据由文件名为mode*.in的文本文件提供。
文件的第1行多重集S中元素个数n;
接下来的n行中,每行有一个自然数。
程序运行结束时,将计算结果输出到文件mode*.out中。
输出文件有2行,第1行给出众数,第2行是重数。
mode0.in
mode0.out
6
1
2
3
5
#defineN100
inta[N];
intcount[N]={0};
inti,n,value,max=0,max_index=0;
请输入多重集S的元素个数n的值:
请输入多重集S的%d个元素:
n);
a[i]);
value=++count[a[i]-1];
if(value>
max)
max=value;
max_index=a[i];
出现次数最多的数%d,共出现%d次\n"
a[max_index],max);
三、士兵站队问题(选作)
在一个划分成网格的操场上,n个士兵散乱地站在网格点上。
网格点由整数坐标(x,y)表示。
士兵们可以沿网格边上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名士兵。
按照军官的命令,士兵们要整齐地列成一个水平队列,即排列成(x,y),(x+1,y),…,(x+n-1,y)。
如何选择x和y的值才能使士兵们以最少的总移动步数排成一列。
计算使所有士兵排成一行需要的最少移动步数。
由文件sol*.in提供输入数据。
文件的第1行是士兵数n,1n10000。
接下来n行是士兵的初始位置,每行2个整数x和y,-10000x,y10000。
程序运行结束时,将计算结果输出到文件sol*.out中。
文件的第1行中的数是士兵排成一行需要的最少移动步数。
sol0.in
sol0.out
12
22
13
3-2
33
8
#include<
stdlib.h>
math.h>
inta[10000],b[10000],c[10000];
intn,i,j,mid_b=0,min_c=0,mid_a=0,sum=0,min_a,min_b;
请输入士兵的个数\n"
请输入%d个士兵的位置\n"
for(i=0;
%d%d"
a[i],&
b[i]);
n-1;
for(j=i+1;
j<
j++)
if(a[i]>
=a[j])
min_a=a[i];
a[i]=a[j];
a[j]=min_a;
if(b[i]>
=b[j])
{
min_b=b[i];
b[i]=b[j];
b[j]=min_b;
c[i]=a[i]-i;
if(c[i]>
=c[j])
min_c=c[i];
c[i]=c[j];
c[j]=min_c;
if(n%2==0)
mid_a=c[(n-1)/2];
mid_b=b[(n-1)/2];
mid_a=c[n/2];
mid_b=b[n/2];
sum=abs(b[i]-mid_b)+abs(a[i]-mid_a-i)+sum;
需要移动的最少步数是%d步\n"
sum);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排序 实验 报告