lvjing数据结构课程设计

发布 2022-10-05 03:10:28 阅读 5102

学校:工程师范(高职部)

班级:计用052

姓名: 吕静

完成时间:7月10日。

学号:数据结构课程设计—排序。

班级:计用052 姓名:吕静

一. 内容简介。

我此次设计的内容是关于排序的有关知识的设计,根据所学知识和平时的实践完成了此次的设计内容,虽不完美,但在实际应用极为广泛。

设计内容主要是关于插入排序、交换排序、选择排序、归并排序、、、的应用,我此次设计主要用到的语句包括:for、while、if、 do…while、 case…….

首先,先是对排序的主程序的概括,即所应用到的有关语句。

其次,是对主程序的调用,通过排列顺序选择恰当的语句完成所对应的程序。

然后,确立关键字及由一组记录组成的文件,而记录则由若干个数据项(或域)组成,其中有一项可用来标识一个记录,称为一个关键字项,该数据项的值成为关键字(可以是字类型的也可是字符类型的,根据问题的要求而定).

最后,通过所学将语句贯穿起来,实现函数的正确调用。

学习c语言最初应该知道怎样运用一些关键字来编写程序,类的关键字中专时代有所了解,但并不深入。进入大学后对此类的运用就比较广了。因此,学好运用好是致关重要的。

所谓排序,就是要整理文件中的记录,使得它按关键字递增(或递减)的次序排列起来。排序是是数据处理中经常运用的一种重要运算。由于排序在计算机中占有重要地位,所以必须熟悉内部排序的排序过程,记住各种算法的时间复杂度,以便实际应用。

排序:插入排序:1)直接插入排序 2)希尔排序。

选择排序:1)直接选择排序 2)堆排序。

交换排序:1)起泡排序 2)快速排序。

归并排序:、、

二流程图 case1 case2 case3 case4 case5 case6

三.程序**及分析。

以下是我对排序的设计及难懂的问题:

#define n 8

typedef struct /定义记录为结构类型/

int key关键字域/

rectype;

rectype r[nr为记录类型的数组/

此段程序设计在每个程序的开始,必不可缺)

起泡排序:bubblesort (r) /从下往上扫描的起泡排序/

rectype r[ ]

int i,j,noswap,w;

rectype temp;

for(i=0;i

if(noswap==0)

if(noswap) break; /本趟排序中未发生交换,则终止算法/

bubblesort/

注意:每一趟排序都使有序区增加了一个气泡,再经过n-1趟排序之后,有序区中就有n-1个气泡,而无序区中的气泡的重量总是大于等于有序区中的气泡的重量,所以,整个起泡排序过程至少需要n-1趟排序。

直接选择排序:

selectsort(r) /对r[0]到r[n-1]进行直接选择排序/

rectype r;

int i,j,k;

rectype temp;

for (i=0;i

insertsort /

注意:算法的辅助空间是一个监视哨,故空间复杂度s(n)=o(1);直接插入排序是稳定的排序方法。+

快速排序:int partition(r,l,h返回划分或被定位的基准记录的位置/

rectype r对无序区r[l]到r[h]做划分/

int l,h;

int i,j,w;

rectype temp;

i=l;j=h; temp=r[i初始化,temp为基准/

doelse break; /调整完毕,退出循环/

r[i]=temp; /最初被调整结点放入正确位置/

sift/堆栈排序的算法):

heapsort (r对r[1]到r[n]进行堆排序/

rectype r;

int i,k;

rectype temp;

for(i=n/2;i>=1;i建初始堆/

sift(r,i,n);

for(i=n;i>=1;i进行n-1趟堆排序/

{ temp=r[1当前堆顶记录和最后一个记录的交换/

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...