云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 算法分析与复杂性理论 实验报告 基本排序

算法分析与复杂性理论 实验报告 基本排序

  • 62 次阅读
  • 3 次下载
  • 2026/4/23 3:43:13

深 圳 大 学 实 验 报 告

课程名称: 算法设计与分析

实验名称: 多种排序算法的算法实现及性能比较

学院: 计算机与软件学院 专业: 计算机科学与技术

报告人: 张健哲 学号: 2013150372 班级: 3

同组人: 无

指导教师: 李炎然

实验时间: 2015/3/25——2015/4/8

实验报告提交时间: 2015/4/8

教务处制

一.实验目的

1. 掌握选择排序、冒泡排序、合并排序、快速排序、插入排序算法原理

2. 掌握不同排序算法时间效率的经验分析方法,验证理论分析与经验分析的一致性。

二.实验步骤与结果

实验总体思路:

利用switch结构来选择实验所要用的排序算法,每一种排序都用相同的计算运行时间的代码,不同的算法就在算法实现部分进行改动(如下代码1至5所示)。不断的改变数据规模,每一个规模在实验时,用循环进行多次实验并作为样本记录消耗的时间。最后输出在不同排序算法下,不同的数据规模的20次实验样本和平均用时(如下图1至5所示)。

各排序算法的实现及实验结果:

(注1:以下代码全部为伪代码,具体代码实现请参照程序中的代码)

(注2:图中显示的时间单位均为毫秒,图中“排序所花时间”一项为平均消耗时间,平均消耗时间结果以20组样本计算平均值后取整得到(并非四舍五入)。)

1、选择排序 代码1:

for i=0 to n-2

min=i

for j= i+1 to n-1

if ele[min]>ele[j] min=j swap(ele[i],ele[min]) //交换

图1、选择排序在不同数据规模下排序所消耗的时间

2、冒泡排序 代码2: for i= 0 to n-1

for j=0 to n-1-i

if a[j]>a[j+1]

swap(a[j],a[j+1]) //交换

图2、冒泡排序在不同数据规模下排序所消耗的时间

3、合并排序 代码3:

Merge(ele[1...n],left,right) middle=(left+right)/2 if right>1eft+1 Merge(ele,left,middle) Merge(ele,middle+1,right) l←left r←right i←left

while l<=middle&&r<=right //两组分别一一比较,数据小的放入ele if ele[l]<=ele[r] t[i++]←ele[l++] else t[i++]←ele[r++]

while l>middle&&r<=r //只剩一组还有剩余的时,将剩下的按顺序放入 ele[i++]=s[r++]

while l<=middle && r>right ele[i++]=s[l++];

图3、合并排序在不同数据规模下排序所消耗的时间

4、快速排序 代码4:

quick(ele[0...n-1],left,right) if l

l←left r←right x←ele[l]; while l

r--

if l

ele[l]←ele[r] l++

while lele[l] //与上面相反

ll++

if l

quick(ele,left,l-1) // 递归调用 quick(ele,l+1,right)

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

深 圳 大 学 实 验 报 告 课程名称: 算法设计与分析 实验名称: 多种排序算法的算法实现及性能比较 学院: 计算机与软件学院 专业: 计算机科学与技术 报告人: 张健哲 学号: 2013150372 班级: 3 同组人: 无 指导教师: 李炎然 实验时间

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com