| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

链表排序北邮数据结构实验

z***u

贡献于2022-12-12

字数:5960


数 结 构









实验名称:________链表排序___________
学生姓名:_____________________
班 级:________________
班序号:_________________________
学 号:________________
日 期:_______________
1.实验求
链表实现面种排序算法进行较
排序算法:1插入排序
2泡排序
3快速排序
4简单选择排序
5
求:1测试数分成三类:正序逆序机数
2三类数较述排序算法中关键字较次数移动 次数(中关键字交换计3次移动)
3三类数较述排序算法中算法执行时间精 确微秒(选作)
423结果进行分析验证述种算法时间复杂度编写测试main()函数测试排序算法正确性
2 程序分析
21 存储结构
双链表
Data Perior Next


22 程序流程 (程序结构类关系图等表明程序构成容般流程图等)







开始


读取数


选择排序方式



输出排序结果

结束



23 关键算法分析
定义节点:
struct Node{
int data
Node* next
Node* period
}
插入排序:
void InsertionSort(Node*qint n){
Node*firstq
Node*teqq
Node*pq>next
Node*pointp
int wtime0compar0
while(pNULL){
compar+1
if(p>data

period>data){
wp>data
teqp>period
while(teqNULL){
compar+1
if(teq>data>w){
teq>next>datateq>data
time+1
if(teq>periodNULL)
{teq>dataw
time+1}
}
else{
teq>next>dataw
time+1
break}
teqteq>period
}
compar1

}

pp>next

}
cout<<插入排序序列:
while(firstNULL){
cout<data<<
firstfirst>next}
cout<<\n插入排序较次数< cout<<插入排序移动次数<

}
链表分序区序区分序区元素插入序区相应位置
次首先找序区中链节然摘链表新位置插入
时间复杂度:O(n^n)
空间复杂度:O(n)

泡排序:
void BubblingSort(Node*qint n){
Node* tep
int qu
int time0
int compar0
tepq
for(int k0k tepq
do{ compar+1
if(tep>data>tep>next>data){
qutep>data
tep>datatep>next>data
tep>next>dataqu
time+3}
teptep>next
}while(tep>nextNULL)
}
cout<<泡排序序列:
while(qNULL){
cout<data<<
qq>next
}
cout<<\n泡排序较次数< cout<<泡排序移动次数<
}
数组实现样进行n1趟趟前面数面数进行交换趟实现趟放面
时间复杂度:O(N^2)
空间复杂度O(n)

选择排序:
void SelectSort(Node*qint n){
Node*i*j*s*first
firstiq
int w0
int time0compar0
while(iNULL){
sji
while(sNULL){
compar+1
if(s>datadata)
js
ss>next}
wi>data
i>dataj>data
j>dataw
if(ij)
time+3
ii>next}
cout<<简单选择排序序列:
while(firstNULL){
cout<data<<
firstfirst>next}
cout<<\n简单选择排序较次数< cout<<简单选择排序移动次数<
}
轮找数第i趟交换交换n趟泡排序优化交换次数
时间复杂度:O(n^2)
空间复杂度:O(n)

快速排序:
void FastSort(Node*lowNode*high){
Node* beginlow
Node *pivotlow
if(lowhigh){
pivotPartion(lowhigh)
if(pivotlow) FastSort(lowpivot>period)
if(pivothigh) FastSort(pivot>nexthigh)
}

}
Node* Partion(Node*lowNode*high){
Node* Lnew Node
L>datalow>data
while(lowhigh){
while(lowhigh&&high>data>L>data)
{highhigh>period
rcompar+1}
rcompar+1
if(lowhigh)rtime+1
low>datahigh>data

while(lowhigh&&low>datadata)
{lowlow>next
rcompar+1}
rcompar+1
if(lowhigh)rtime+1
high>datalow>data
}
low>dataL>data
return low
}
次第作轴值交换次放左面放右面
接着递轴值左面链表右面链表分做相操作直链结止
时间复杂度:O(nlog n)
空间复杂度:调栈空间O(log2n)




24
总体较种排序性:
排序方法
均情况
情况
坏情况
插入排序
O(n2)
O(n)
O(n2)
泡排序
O(n2)
O(n)
O(n2)
快速排序
O(nlog2n)
O(nlog2n)
O(n2)
简单选择排序
O(n2)
O(n2)
O(n2)


















3 程序运行结果分析




4 总结
41实验难点关键点
1通数组排序较链表排序花时间更长增加指针移动
2递调排序算法时间较长涉函数调进栈出栈问题



42心体会
通次试验进步链表应进步解时排序种基数操作较深刻认识时排序方式链表排序代码编写时明白情况处理方式养成更严谨编写代码思维方式


附:程序代码
#include
#include
using namespace std
int rtime0rcompar0
struct Node{
int data
Node* next
Node* period
}
void InsertionSort(Node*qint n)
void BubblingSort(Node*qint n)
void FastSort(Node*lowNode*high)
void SelectSort(Node*qint n)
Node* Partion(Node*lowNode*high)
void main(){
int data[200]
int k1
Node* q*first
ifstream ifile(DTESTdatatxt)
int i0n0
cout<<文件读入数:< while(ifile>>data[i]){
cout< i++
n++
}
Node* pnew Node
p>datadata[0]
p>nextNULL
p>periodNULL
firstp
while(k qnew Node
q>datadata[k]
q>periodp
p>nextq
pq
k++
}
q>nextNULL
Node*lastq
qfirst
cout<<选择排序方式:<cout<<1插入排序\n2泡排序\n3快速排序\n4简单选择排序\n5退出<int choice
cin>>choice
while((choice1)&(choice2)&(choice3)&(choice4)&(choice5)){
cout<<选项请重新输入
cin>>choice}
switch(choice){
case 1InsertionSort(firstn)
break
case 2BubblingSort(firstn)
break
case 3FastSort(firstlast)
cout<<快速排序序列:
while(firstNULL){
cout<data<<
firstfirst>next
}
cout<<\n快速排序较次数< cout<<快速排序移动次数< break
case 4SelectSort(firstn)
break
case 5return
}

system(pause)
}
void BubblingSort(Node*qint n){
Node* tep
int qu
int time0
int compar0
tepq
for(int k0k tepq
do{ compar+1
if(tep>data>tep>next>data){
qutep>data
tep>datatep>next>data
tep>next>dataqu
time+3}
teptep>next
}while(tep>nextNULL)
}
cout<<泡排序序列:
while(qNULL){
cout<data<<
qq>next
}
cout<<\n泡排序较次数< cout<<泡排序移动次数<
}
void SelectSort(Node*qint n){
Node*i*j*s*first
firstiq
int w0
int time0compar0
while(iNULL){
sji
while(sNULL){
compar+1
if(s>datadata)
js
ss>next}
wi>data
i>dataj>data
j>dataw
if(ij)
time+3
ii>next}
cout<<简单选择排序序列:
while(firstNULL){
cout<data<<
firstfirst>next}
cout<<\n简单选择排序较次数< cout<<简单选择排序移动次数<
}
void InsertionSort(Node*qint n){
Node*firstq
Node*teqq
Node*pq>next
Node*pointp
int wtime0compar0
while(pNULL){
compar+1
if(p>data

period>data){
wp>data
teqp>period
while(teqNULL){
compar+1
if(teq>data>w){
teq>next>datateq>data
time+1
if(teq>periodNULL)
{teq>dataw
time+1}
}
else{
teq>next>dataw
time+1
break}
teqteq>period
}
compar1

}

pp>next

}
cout<<插入排序序列:
while(firstNULL){
cout<data<<
firstfirst>next}
cout<<\n插入排序较次数< cout<<插入排序移动次数<

}
void FastSort(Node*lowNode*high){
Node* beginlow
Node *pivotlow
if(lowhigh){
pivotPartion(lowhigh)
if(pivotlow) FastSort(lowpivot>period)
if(pivothigh) FastSort(pivot>nexthigh)
}

}
Node* Partion(Node*lowNode*high){
Node* Lnew Node
L>datalow>data
while(lowhigh){
while(lowhigh&&high>data>L>data)
{highhigh>period
rcompar+1}
rcompar+1
if(lowhigh)rtime+1
low>datahigh>data

while(lowhigh&&low>datadata)
{lowlow>next
rcompar+1}
rcompar+1
if(lowhigh)rtime+1
high>datalow>data
}
low>dataL>data
return low
}






文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

数据结构实验报告

实验报告课程:数据结构 班级:网络工程 学号: 姓名: 实验1 链表的插入和删除一、实验目的 1、 了解单链表、循环链表和双链表的基本知识;2、 掌握算法思想和数据结构的描述;3、 掌握链表的插入、删除的相关语句及基本方法。二、 实验步骤

z***u 2年前 上传347   0

北邮学生毕业留言

北邮学生毕业留言  一份北邮学生的毕业留言推荐,欢迎收看  金色的火焰遍地燃起,那么地亮堂耀眼。远方戈壁。天际流沙。绵长的沙线分割着天之蓝与地之黄。  于河西端口,于长城遗存于历史编年的残存烽火台下,再次与遍地的向日葵相遇。  葵花开朵朵,在镶翠嵌玉的田园,铺展明快热烈的金色华季。  河西七月,朵朵花开。  鎏金田园苍然大地,于时空静寂一幅立体油画,色彩堆积。再一次洗劫对

D***9 11年前 上传747   0

数据结构实验报告《三、串及其应用》

数据结构实验报告- - - - 串及其应用之文学研究助手 专业班级: 电信班 时间:2011年X月X日数据结构实验报告- - - -

文***享 3年前 上传1340   0

数据结构综合性实验

 数据结构实验实验六数据结构综合性实验  计算机科学与技术系X班 组 长:X 日 期:2011年X月X日  实验报告2009级 X班 2011年X月X日实验类型:综合设计型 实验地点:软件实验室三 组长:  组员

文***享 1年前 上传286   0

数据结构课程设计报告多关键字排序高考排序

XX工 学 院 计算机工程学院课程设计报告设计名称: 数据结构课程设计 选题名称: 多关键字排序 姓 名: 学 号: 专业班级: 网络工程 系 (院): 计算机工程学院

文***享 7个月前 上传197   0

实验八顺序表的排序实验报告

 计算机科学与技术系 实 验 报 告 专业名称 计算机科学与技术 课程名称 数据结构与算法 项目名称 实验八顺序表的排序实验 班 级 学 号 1 姓

文***品 2年前 上传775   0

南邮dsp上机实验报告

南京邮电大学实 验 报 告实验名称:离散时间信号与系统的时、频域表示离散傅立叶变换和z变换 数字滤波器的频域分析和实现数字滤波器的设计课程名称 数字信号处理A(双语) 班级学号________姓 名_____________开课时间 201 /201 学年, 第 学期实验一:离散时间信号与系统的时、频域表示一、实验

文***享 1年前 上传365   0

数据结构实习报告

数据结构实习报告  一、需求分析1、  程序所实现的功能;2、  程序的输入,包含输入的数据格式和说明;3、  程序的输出,程序输出的形式;4、  测试数据,如果程序输入的数据量比较大,需要给出测试数据;5、  合作人及其分工二、设计说明1、  主要的数据结构设计说明;2、  程序的主要流程图;3、  程序的主要模块,要求对主要流程图中出现的模块进行说明4、  程序的主要函数及其伪代码说明

s***n 8年前 上传1059   0

2018年北邮工学硕士论文开题报告范文

北邮工学硕士论文开题报告范文  论文题目:基于仿真理论及虚拟化技术的虚拟覆盖网络模型研究  一、立题依据(包括研究目的、意义、国内外研究现状和发展趋势,需结合科学研究发展趋势来论述科学意义;或结合国民经济和社会发展中迫切需要解决的关键科技问题来论述其应用前景。附主要参考文献目录)(不少于800字)  研究目的  现有 internet 网络功能强大,服务类型多样,但是随着网络规模

飞***M 6年前 上传342   0

数据结构试题及答案多套

数据结构试卷(一) 1数据结构试卷(二) 4数据结构试卷(三) 6数据结构试卷(四) 8数据结构试卷(五) 11数据结构试卷(六) 14数据结构试卷(七) 16数据结构试卷(八) 18数据结构试卷(九) 20数据结构试卷(十) 23数据结构试卷(一)参考答案 26数据结构试卷(二)参考答案 27数据结构试卷(三)参考答案 28数据结构试卷(四)参考答案 30数据结构试

文***享 3年前 上传906   0

数据结构练习题及答案

数据结构练习题及答案第1章 绪论一、 判断题1. 数据的逻辑结构与数据元素本身的内容和形式无关。 (√)2. 一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。 (√)3. 数据元素是数据的最小单位。 (

文***享 3年前 上传1099   0

数据结构试验迷宫问题

数据结构试验——迷宫问题(一)基本问题1.问题描述这是心理学中的一个经典问题。心理学家把一只老鼠从一个无顶盖的大盒子的入口处放入,让老鼠自行找到出口出来。迷宫中设置很多障碍阻止老鼠前行,迷宫唯一的出口处放有一块奶酪,吸引老鼠找到出口。简而言之,迷宫问题是解决从布置了许多障碍的通道中寻找出路的问题。本题设置的迷宫如图1所示。图1 迷宫示意图迷宫四周设为墙;无填充处,为可通处。设每个

文***品 3年前 上传538   0

数据结构实践报告

 数据结构实践报告学 号: 姓 名: 班 级: 班 指导老师: 时 间: 2016-12-21

文***享 1年前 上传599   0

河北省中小学实验室规章制度

河北省中小学实验室规章制度实验员职责一、实验员要根据学校的学期工作计划和教研组的教学进度计划,制定本学科的实验教学工作学期计划。二、根据本学科教材的要求,要保证全部演示实验和学生分组实验的正常开出,并认真落实各项制度。三、实验员要刻苦钻研业务。要通读本学科教材,熟练掌握本学科全部演示实验和学生分组实验的操作技术,并对实验现象做出恰当的理论解释。四、要按时开出实验课,积极协

l***i 4年前 上传980   0

北滘镇中心小学语文合作学习实验报告

北蛘蛑行男⊙в镂暮献餮习实验报告  小学语文合作学习实验报告   北蛘蛑行男⊙А∥庋噫   新课程改革的总体思路是:   面向全体学生,使所有学生都能达到课程标准所规定的学习目标;高度尊重学生的个性,充分发挥学生自身的能力和特长,为其主动适应未来社会打下好基础。   语文课程改革要求老师教学方式转变,树立以学生为主体的教学观念,鼓励老师创造性的探索新的教学途径,改进教学方法和

p***n 9年前 上传350   0

北京邮电大学通原软件实验报告

信息与通信工程学院通信原理软件实验报告 班 级: 姓 名: 学 号: 日 期 : 2013年X月 【实验目的】本实验是“通信原理”的一个组成部分。在本实验中我们使用的软件工具是MATLAB。实验的主要目的是:1.掌握MATLAB软件

z***u 2年前 上传651   0

数据结构练习题(含答案)

数据结构练习题习题1 绪论1.1 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的① 、数据信息在计算机中的② 以及一组相关的运算等的课程。 ① A.操作对象   B.计算方法  C.逻辑结构  D.数据映象 ② A.存储结构 B.关系 C.运算 D.算法2. 数据结构DS(Data S

文***享 3年前 上传1525   0

数据结构大作业(含源代码)

数据结构大作业作业题目: 职工信息管理系统 姓 名: 学 号: 班 级: 计算机班 指导教师: 日 期: 2010年X月X日 职工信息管理系统(学院计算机科学

文***享 3年前 上传463   0

数据结构习题集附答案

数据结构习题集附答案第一章 绪 论一、选择题1.组成数据的基本单位是( )A.数据项 B.数据类型 C.数据元素 D.数据变量2.数据结构是研究数据的( )以及它们之间的相互关系。A.理想结构,物理结构 B.理想结构,抽象结构C.物理结构,逻辑结构 D.抽象结构,逻辑结构3.在数据结构中,从逻辑上可以把数据结构分成( )。A.动态结构和静态结构 B.紧凑结构和非紧凑结构

文***享 3年前 上传871   0

十套数据结构试题及答案

数据结构试卷(一) 1数据结构试卷(二) 4数据结构试卷(三) 6数据结构试卷(四) 8数据结构试卷(五) 11数据结构试卷(六) 14数据结构试卷(七) 16数据结构试卷(八) 18数据结构试卷(九) 20数据结构试卷(十) 23数据结构试卷(一)参考答案 26数据结构试卷(二)参考答案 27数据结构试卷(三)参考答案 28数据结构试卷(四)参考答案 30数据结构试

文***品 3年前 上传658   0

《数据结构(C语言版)》教案

2011 至2012 学年第 一 学期教  案课程名称 数据结构 使用教材《数据结构(C语言版)》教学时数 56    课程性质 必修    任课班级(人数)信管(53人)   信息 系(部)    信管 教研室任课教师山东科技大学泰山科技学院课 时 授 课 计 划2011-2012学年第 二学期                           第1周

文***享 3年前 上传666   0

数据结构简答题打印版

 数据结构简答题1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据

文***品 3年前 上传482   0

数据结构和算法课程设计题目

XX大学课程设计课程名称: 数 据 结 构 与 算 法院(部)名 称: 信息与计算科学学院组长姓名学号 同组人员姓名指导教师姓名: 设 计 时 间: 2010.6.7----2009.6.27一、《数据结构与算法》课程设计参考题目(一)参考题目一(每位同学选作一个,同组人员

文***品 1年前 上传383   0

数据结构 第九章 查找

.折半查找是否适合链表结构的序列,为什么?用二分查找的查找速度必然比线性查找的速度快,这种说法对吗?

九***1 5年前 上传1715   0

邮政E邮案例

因地制宜 相机而动 ----**县局E邮·**蜜橘项目一体化用邮营销案例 一、项目背景 **蜜橘历史悠久,以其独特的品质特性驰名中外,有“桔中之王”的美称,是全国优质水果,荣获中国驰名商标,温家宝总理称赞“**蜜橘是金牌”。2013年,蜜橘种植面积达70万亩,总产达25亿斤。**蜜橘不仅销往全国,还远销东南亚、中东、北美、欧盟等30多个国家和地区。11月8-9日,由**市政府主办,**县政

s***i 9年前 上传7312   0