下载此文档

排序算法数据结构课程设计说明书.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
中北大学
数据结构
课程设计说明书
  
学生姓名:
学号:
 
学生姓名:
学号:
学生姓名:
学号:
学生姓名:
学号:
学生姓名:
学号:
学院:
软件学院
专业:
 软件工程
题目:
排序算法实现与演示系统
成绩
指导教师
 
   2012 年 1月 8 日
设计目的
本系统是为了实现和比较各种不同排序方法的不同复杂度,而建立的,从不同的角度比较各算法的优劣,从而使使用者能对个排序方法有更清晰的了解.
设计内容和要求
本次设计的内容主要有实现各种排序算法以及比较各种算法。要求主要是要执行对一种数据类型的序列进行所有排序方法的排序计算,并返回序列及各算法的排序指标。

本次设计主要采用的数据结构有结构体定义,直接排序,选择排序,归并排序,快速排序,冒泡排序,希尔排序,堆排序等。

详细设计思想
本次设计分主题设计和模块设计两部分。
主体设计方面,本系统的主要数据类型为含有一个关键字的结构体类型,命名为datatype;和mn,分别用于记录每种排序方法中的各排序元素的比较次数和移动次数(关键字交换以3次计)的总和。
模块设计方面,本系统大致可分为排序模块部分和运行模块部分。排序模块部分分为归并排序模块,快速排序模块,冒泡排序模块,选择排序模块,直接排序模块,希尔排序模块,堆排序模块;运行模块部分分为主函数,自行输入模块,随机模块,输出模块。
以下是各排序算法的核心设计思想:
冒泡排序
相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其他的数进行类似操作
快速排序
使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists) ,从数列中挑出一个元素,称为 "基准",重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边),递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子序列排序
插入排序
将一个记录插入到已排好序的有序表(有可能是空表)中,从而得到一个新的记录数增1的有序表
选择排序
每一趟从待排序的数据元素中选出最小(或最大)的一个元素, 顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完
希尔排序
将待排序的元素分为多个子序列,使得每个子序列的元素个数相对较少,对各个子序列分别进行直接插入排序,待整个待排序序列“基本有序”后,再对所有元素进行一次直接插入
堆排序
堆排序(HeapSort)是一树形选择排序。堆排序的特点是:在排序过程中,将R[l..n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系(参见二叉树的顺序存储结构),在当前无序区中选择关键字最大(或最小)的记录
归并排序
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。
运行模块个算法如下:
主函数
首先选择一种生成原始数列的方法,然后经过选择进入相应的界面,将数据排序后输出

排序算法数据结构课程设计说明书 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人szh187166
  • 文件大小0 KB
  • 时间2012-10-23
最近更新