一、实验目的:掌握常用的查找与排序算法.二、实验内容 1、用简单插入排序法,对关键字值序列为:9,2,
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/26 04:58:37
一、实验目的:掌握常用的查找与排序算法.二、实验内容 1、用简单插入排序法,对关键字值序列为:9,2,
第一题:
#include
#define MAX 100
typedef int datatype;
typedef struct
{
datatype data;
}record;
typedef struct
{
record r[MAX+1];
int length;
}table;
void creat(table *tab)
{
printf("输入需要排列的数字个数:最大100\n");
scanf("%d",&tab->length);
for(int i=1;ilength;i++)
{ printf("请输入第%d个数据:",i);
scanf("%d",&tab->r[i]);
}
}
void print(table *tab)
{
\x05for(int i=1;ilength;i++)
\x05{
\x05 printf("%4d",tab->r[i]);
\x05} printf("\n");
}
void insertsort(table *tab)
{
\x05 int i,j;
\x05 printf("原始数据为:");
\x05 print(tab);
\x05 for(i=2;ilength;i++)
\x05 {
\x05 j=i-1;
\x05 tab->r[0].data=tab->r[i].data;
\x05 while(tab->r[0].datar[j].data)
\x05 {
\x05\x05 tab->r[j+1].data=tab->r[j].data;
\x05\x05 j--;
\x05
\x05 }
\x05 tab->r[j+1].data=tab->r[0].data;
\x05 \x05 printf("第%d次为 :",i-1);
\x05 print(tab);
\x05 }
}
void main()
{
table tab;
creat(&tab);
insertsort(&tab);
}
第二题:
#include
#define MAX 100
typedef int datatype;
typedef struct
{
datatype data;
}record;
typedef struct
{
record r[MAX+1];
int length;
}table;
void creat(table *tab)
{
printf("输入需要插入的数字个数:最大100");
scanf("%d",&tab->length);
for(int i=1;ilength;i++)
{ printf("请输入第%d个数据:",i);
scanf("%d",&tab->r[i]);
}
}
void print(table *tab)
{
\x05for(int i=1;ilength;i++)
\x05{
\x05 printf("%4d",tab->r[i]);
\x05} printf("\n");
}
void find(table *tab)
{ int find;
int i,j,left,right,mid;
\x05printf("输入你要查找的数:");
\x05scanf("%d",&find);
\x05for(i=2;ilength;i++)
\x05{
\x05 left=1;
\x05 right=i-1;
\x05 tab->r[0].data=find;
\x05 while(leftr[0].datar[mid].data)
\x05\x05\x05 right=mid-1;
\x05\x05 else left=mid+1;
\x05 }
\x05 if(tab->r[left].data==find)printf("\n你要查找的数在第%d个",left);
\x05}
}
void main()
{
table tab;
creat(&tab);
print(&tab);
find(&tab);
}
#include
#define MAX 100
typedef int datatype;
typedef struct
{
datatype data;
}record;
typedef struct
{
record r[MAX+1];
int length;
}table;
void creat(table *tab)
{
printf("输入需要排列的数字个数:最大100\n");
scanf("%d",&tab->length);
for(int i=1;ilength;i++)
{ printf("请输入第%d个数据:",i);
scanf("%d",&tab->r[i]);
}
}
void print(table *tab)
{
\x05for(int i=1;ilength;i++)
\x05{
\x05 printf("%4d",tab->r[i]);
\x05} printf("\n");
}
void insertsort(table *tab)
{
\x05 int i,j;
\x05 printf("原始数据为:");
\x05 print(tab);
\x05 for(i=2;ilength;i++)
\x05 {
\x05 j=i-1;
\x05 tab->r[0].data=tab->r[i].data;
\x05 while(tab->r[0].datar[j].data)
\x05 {
\x05\x05 tab->r[j+1].data=tab->r[j].data;
\x05\x05 j--;
\x05
\x05 }
\x05 tab->r[j+1].data=tab->r[0].data;
\x05 \x05 printf("第%d次为 :",i-1);
\x05 print(tab);
\x05 }
}
void main()
{
table tab;
creat(&tab);
insertsort(&tab);
}
第二题:
#include
#define MAX 100
typedef int datatype;
typedef struct
{
datatype data;
}record;
typedef struct
{
record r[MAX+1];
int length;
}table;
void creat(table *tab)
{
printf("输入需要插入的数字个数:最大100");
scanf("%d",&tab->length);
for(int i=1;ilength;i++)
{ printf("请输入第%d个数据:",i);
scanf("%d",&tab->r[i]);
}
}
void print(table *tab)
{
\x05for(int i=1;ilength;i++)
\x05{
\x05 printf("%4d",tab->r[i]);
\x05} printf("\n");
}
void find(table *tab)
{ int find;
int i,j,left,right,mid;
\x05printf("输入你要查找的数:");
\x05scanf("%d",&find);
\x05for(i=2;ilength;i++)
\x05{
\x05 left=1;
\x05 right=i-1;
\x05 tab->r[0].data=find;
\x05 while(leftr[0].datar[mid].data)
\x05\x05\x05 right=mid-1;
\x05\x05 else left=mid+1;
\x05 }
\x05 if(tab->r[left].data==find)printf("\n你要查找的数在第%d个",left);
\x05}
}
void main()
{
table tab;
creat(&tab);
print(&tab);
find(&tab);
}
一、实验目的:掌握常用的查找与排序算法.二、实验内容 1、用简单插入排序法,对关键字值序列为:9,2,
假设关键字序列为{9,3,5,1,2,6,4,7,8},用直接选择排序算法对关键字进行排序
用简单插入排序法,对关键字值序列:9,2,20,45,3,18按从小到大的顺序进行排列,试打印出每趟排序的结果.
对下列关键字序列(15,4,38,51,9,17,80,2)进行直接插入排序?
插入排序法其排序趟数与序列的原始状态有关吗?
采用快速排序算法,对关键字序列(28,56,78,60,12,25)按从小到大次序排序
快速排序的问题对下列关键字序列用快速排序的方法进行排序时,速度最快的的情形是()A{21,25,5,17,9,23,30
数据结构求答案单选题 第1题 (2) 分 排序趟数与序列的原始状态有关的排序方法是( )排序法。 A、插入 B、选择 C
用直接插入排序法对:7,1,3,12,8,4,9,10进行从小到大排序时,第四步得到的一组数为:______.
若对关键字序列(20,2,56,48,26,57,12,73,21,24,80)进行一趟增量为3的希尔排序,则得到的结果
设一组记录的关键字序列为(51、85、61、43、45、49),采用堆排序算法完成以下操作
数据结构 堆排序设一组记录关键字序列为(80,70,33,65,24,56,48),则用筛选法建成的初始堆为