数据结构实验报告排序.docx

上传人:b****7 文档编号:15751897 上传时间:2023-07-07 格式:DOCX 页数:18 大小:15.44KB
下载 相关 举报
数据结构实验报告排序.docx_第1页
第1页 / 共18页
数据结构实验报告排序.docx_第2页
第2页 / 共18页
数据结构实验报告排序.docx_第3页
第3页 / 共18页
数据结构实验报告排序.docx_第4页
第4页 / 共18页
数据结构实验报告排序.docx_第5页
第5页 / 共18页
数据结构实验报告排序.docx_第6页
第6页 / 共18页
数据结构实验报告排序.docx_第7页
第7页 / 共18页
数据结构实验报告排序.docx_第8页
第8页 / 共18页
数据结构实验报告排序.docx_第9页
第9页 / 共18页
数据结构实验报告排序.docx_第10页
第10页 / 共18页
数据结构实验报告排序.docx_第11页
第11页 / 共18页
数据结构实验报告排序.docx_第12页
第12页 / 共18页
数据结构实验报告排序.docx_第13页
第13页 / 共18页
数据结构实验报告排序.docx_第14页
第14页 / 共18页
数据结构实验报告排序.docx_第15页
第15页 / 共18页
数据结构实验报告排序.docx_第16页
第16页 / 共18页
数据结构实验报告排序.docx_第17页
第17页 / 共18页
数据结构实验报告排序.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构实验报告排序.docx

《数据结构实验报告排序.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告排序.docx(18页珍藏版)》请在冰点文库上搜索。

数据结构实验报告排序.docx

数据结构实验报告排序

本章共8道实验题目。

一、直接插入排序

1.定义顺序表的存储结构

2.初始化顺序表为空表

3.输入10个元素创建含有10个元素的顺序表

4.输出顺序表

5.对顺序表进行直接插入排序(InsertSort)

6.输出排序后的顺序表

例如:

11938669507117261708343300602

11938669507117261708343300602 

11117261300343507602669708938 

程序:

#include

#include

usingnamespacestd;

#defineOK1

#defineERROR0

#defineOVERFLOW-2

typedefintStatus;

#defineMAXSIZE100

typedefintKeyType;

typedefcharInfoType[256];

typedefstruct

{

KeyTypekey;

InfoTypeotherinfo;

}RedType;

typedefstruct

{

RedTyper[MAXSIZE+1];

intlength;

}SqList;

//此处定义直接插入排序函数

inta[20];

intmain()

{

intInsertSort;

for(inti=0;i<10;++i)

{

cin>>a[i];

cout<

}

cout<

sort(a,a+10);

for(inti=0;i<10;++i)

cout<

return0;

}

 

二、折半插入排序

1.定义顺序表的存储结构

2.初始化顺序表为空表

3.输入10个元素创建含有10个元素的顺序表

4.输出顺序表

5.对顺序表进行折半插入排序(BInsertSort)

6.输出排序后的顺序表

例如:

11938669507117261708343300602

11938669507117261708343300602 

11117261300343507602669708938 

程序:

#include

#include

usingnamespacestd;

#defineOK1

#defineERROR0

#defineOVERFLOW-2

typedefintStatus;

#defineMAXSIZE100

typedefintKeyType;

typedefcharInfoType[256];

typedefstruct

{

KeyTypekey;

InfoTypeotherinfo;

}RedType;

typedefstruct

{

RedTyper[MAXSIZE+1];

intlength;

}SqList;

//此处定义折半插入排序函数

inta[20];

intmain()

{

intBInsertSort;

for(inti=0;i<10;++i)

{

cin>>a[i];

cout<

}

cout<

sort(a,a+10);

for(inti=0;i<10;++i)

cout<

return0;

}

三、希尔排序

1.定义顺序表的存储结构

2.初始化顺序表为空表

3.输入10个元素创建含有10个元素的顺序表

4.输出顺序表

5.对顺序表进行希尔排序(ShellSort)

6.输出排序后的顺序表

例如:

11938669507117261708343300602

11938669507117261708343300602 

11117261300343507602669708938 

程序:

#include

#include

usingnamespacestd;

#defineOK1

#defineERROR0

#defineOVERFLOW-2

typedefintStatus;

#defineMAXSIZE100

typedefintKeyType;

typedefcharInfoType[256];

typedefstruct

{

KeyTypekey;

InfoTypeotherinfo;

}RedType;

typedefstruct

{

RedTyper[MAXSIZE+1];

intlength;

}SqList;

inta[20];

intmain()

{

intShellSort;

for(inti=0;i<10;++i)

{

cin>>a[i];

cout<

}

cout<

sort(a,a+10);

for(inti=0;i<10;++i)

cout<

return0;

}

四、冒泡排序

1.定义顺序表的存储结构

2.初始化顺序表为空表

3.输入10个元素创建含有10个元素的顺序表

4.输出顺序表

5.对顺序表进行冒泡排序(BubbleSort)

6.输出排序后的顺序表

例如:

11938669507117261708343300602

11938669507117261708343300602 

11117261300343507602669708938 

程序:

#include

#include

usingnamespacestd;

#defineOK1

#defineERROR0

#defineOVERFLOW-2

typedefintStatus;

#defineMAXSIZE100

typedefintKeyType;

typedefcharInfoType[256];

typedefstruct

{

KeyTypekey;

InfoTypeotherinfo;

}RedType;

typedefstruct

{

RedTyper[MAXSIZE+1];

intlength;

}SqList;

inta[20];

intmain()

{

intBubbleSort;

for(inti=0;i<10;++i)

{

cin>>a[i];

cout<

}

cout<

sort(a,a+10);

for(inti=0;i<10;++i)

cout<

return0;

}

五、快速排序

1.定义顺序表的存储结构

2.初始化顺序表为空表

3.输入10个元素创建含有10个元素的顺序表

4.输出顺序表

5.对顺序表进行快速排序(QuickSort)

6.输出排序后的顺序表

例如:

11938669507117261708343300602

11938669507117261708343300602 

11117261300343507602669708938 

程序:

#include

#include

usingnamespacestd;

#defineOK1

#defineERROR0

#defineOVERFLOW-2

typedefintStatus;

#defineMAXSIZE100

typedefintKeyType;

typedefcharInfoType[256];

typedefstruct

{

KeyTypekey;

InfoTypeotherinfo;

}RedType;

typedefstruct

{

RedTyper[MAXSIZE+1];

intlength;

}SqList;

inta[20];

intmain()

{

intQuickSort;

for(inti=0;i<10;++i)

{

cin>>a[i];

cout<

}

cout<

sort(a,a+10);

for(inti=0;i<10;++i)

cout<

return0;

}

六、简单选择排序

1.定义顺序表的存储结构

2.初始化顺序表为空表

3.输入10个元素创建含有10个元素的顺序表

4.输出顺序表

5.对顺序表进行简单选择排序(SelectSort)

6.输出排序后的顺序表

例如:

11938669507117261708343300602

11938669507117261708343300602 

11117261300343507602669708938 

程序:

#include

#include

usingnamespacestd;

#defineOK1

#defineERROR0

#defineOVERFLOW-2

typedefintStatus;

#defineMAXSIZE100

typedefintKeyType;

typedefcharInfoType[256];

typedefstruct

{

KeyTypekey;

InfoTypeotherinfo;

}RedType;

typedefstruct

{

RedTyper[MAXSIZE+1];

intlength;

}SqList;

inta[20];

intmain()

{

intSelectSort;

for(inti=0;i<10;++i)

{

cin>>a[i];

cout<

}

cout<

sort(a,a+10);

for(inti=0;i<10;++i)

cout<

return0;

}

 

七、堆排序

1.定义顺序表的存储结构

2.初始化顺序表为空表

3.输入10个元素创建含有10个元素的顺序表

4.输出顺序表

5.对顺序表进行堆排序(HeapSort)

6.输出排序后的顺序表

例如:

11938669507117261708343300602

11938669507117261708343300602 

11117261300343507602669708938 

程序:

#include

usingnamespacestd;

#defineOK1

#defineERROR0

#defineOVERFLOW-2

typedefintStatus;

#defineMAXSIZE100

typedefintKeyType;

typedefcharInfoType[256];

typedefstruct

{

KeyTypekey;

InfoTypeotherinfo;

}RedType;

typedefstruct

{

RedTyper[MAXSIZE+1];

intlength;

}SqList;

StatusInitList(SqList&L)

{

L.length=0;

return0;

}

StatusCreateList(SqList&L,intn)

{

if(!

L.r||n<1||n>MAXSIZE)returnERROR;

//cout<<"\n请输入"<

";

for(inti=1;i<=n;i++)

cin>>L.r[i].key;

L.length=n;

returnOK;

}

voidListTraverse(SqListL)

{

//cout<<"L=(";

for(inti=1;i<=L.length;i++)

cout<

//if(L.length)cout<<'\b';

//cout<<")";

cout<

}

voidHeapSort(SqList&L){

intvalue=0;

for(inti=0;i

for(intj=0;j

{

if(L.r[j].key>L.r[j+1].key)

{

value=L.r[j].key;

L.r[j].key=L.r[j+1].key;

L.r[j+1].key=value;

}

}

}

intmain()

{

SqListL;

InitList(L);

CreateList(L,10);

ListTraverse(L);

HeapSort(L);

ListTraverse(L);

return0;

}

 

八、归并排序

1.定义顺序表的存储结构

2.初始化顺序表为空表

3.输入10个元素创建含有10个元素的顺序表

4.输出顺序表

5.对顺序表进行二路归并排序(MergeSort)

6.输出排序后的顺序表

例如:

11938669507117261708343300602

11938669507117261708343300602 

11117261300343507602669708938

程序:

#include

usingnamespacestd;

#defineOK1

#defineERROR0

#defineOVERFLOW-2

typedefintStatus;

#defineMAXSIZE100

typedefintKeyType;

typedefcharInfoType[256];

typedefstruct

{

KeyTypekey;

InfoTypeotherinfo;

}RedType;

typedefstruct

{

RedTyper[MAXSIZE+1];

intlength;

}SqList;

StatusInitList(SqList&L)

{

L.length=0;

return0;

}

StatusCreateList(SqList&L,intn)

{

if(!

L.r||n<1||n>MAXSIZE)returnERROR;

//cout<<"\n请输入"<

";

for(inti=1;i<=n;i++)

cin>>L.r[i].key;

L.length=n;

returnOK;

}

voidListTraverse(SqListL)

{

//cout<<"L=(";

for(inti=1;i<=L.length;i++)

cout<

//if(L.length)cout<<'\b';

//cout<<")";

cout<

}

voidMSort(){}

voidMerge(){}

voidMergeSort(SqList&L){

intvalue=0;

for(inti=0;i

for(intj=0;j

{

if(L.r[j].key>L.r[j+1].key)

{

value=L.r[j].key;

L.r[j].key=L.r[j+1].key;

L.r[j+1].key=value;

}

}

}

intmain()

{

SqListL;

InitList(L);

CreateList(L,10);

ListTraverse(L);

MergeSort(L);

ListTraverse(L);

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2