排序算法实现与演示系统
数据结构多媒体演示系统设计

数据结构多媒体演示系统设计【摘要】本文基于数据结构相对抽象的特点,结合多媒体技术,利用文字、声音、图像、图形、动画等形式描绘数据结构的算法,设计数据结构多媒体演示系统。
【关键词】数据结构;多媒体;演示系统0 概述数据结构是计算机及相关专业的一门重要专业基础课程。
不论是计算机专业的学生还是从事计算机科学的技术人员,为了深入学习计算机专业的软硬件课程,都必须学好这门课程。
然而,数据结构受到重视的同时,此课程的学习却一直学生感到复杂和困难的。
通过几年的教学工作,我发现数据结构中的链、表、栈、树、图以及相关的典型算法对于初学者而言实际上是非常抽象而难懂的。
最难学的原因在于指针的操作、储存方式过于抽象;很多算法概念在生活经验中缺乏可供模拟的例子,当学生面对抽象概念而无法在心中产生具体的影像时,则容易在学习过程中遭遇困难。
因此我们希望借助多媒体技术对经典的算法有更直观、形象的描绘。
当我们试图从网络上找寻相关的软件时,发现在国外数据结构有一些可视化的软件,也获得了很好的效果,但鉴于均为商业软件,需要付费使用。
然而国内这方面的工作却做得很少,几乎找不到这样的完善的软件。
因此,本文拟结合多媒体技术、依据数据结构的特点,利用文字、声音、图像、图形、动画等形式描绘数据结构的算法,设计数据结构多媒体演示系统。
1 系统设计1.1 系统总体设计方案系统目标为抽取数据结构中典型的概念、算法,结合多媒体技术,融合声音、图像、动画等元素,设计数据结构多媒体演示系统。
总体结构方案如下:图1 数据结构多媒体演示系统总体结构方案1.2 系统的主要模块及功能简介该数据结构多媒体演示系统划分为单链表、栈、队列、二叉树、图、排序、查找共七个模块。
进入系统主界面后,通过链接菜单可进入各模块的子界面。
1.2.1 单链表模块该模块主要包括单链表的简介,存储、插入、删除等相关实现代码,并设计实现单链表的插入、删除的动画演示效果。
1.2.2 栈模块该模块主要包括栈的特点及应用场合简介,给出栈的顺序存储及链式存储类的实现代码,设计实现入栈、出栈的动画演示效果。
算法可视化演示软件开发毕业设计

算法可视化演示软件开发毕业设计目录前言 (1)第一章绪论 (2)第一节课题背景 (2)第二节课题的目的与意义 (2)第三节论文结构 (3)第二章相关知识概述 (4)第一节 Java知识相关概述 (4)一、Java的发展史 (4)二、Java的主要特性 (4)三、JDK 平台相关信息 (5)第二节 Java图形界面技术概述 (5)一、 Java Swing相关概述 (5)二、容器和布局 (7)三、事件处理 (8)第三节相关算法的介绍 (9)一、冒泡排序 (9)二、插入排序 (10)三、选择排序 (12)四、二叉查找树 (12)第四节本章小结 (15)第三章需求分析 (17)第一节系统功能需求 (17)一、系统设计目标 (17)二、系统功能需求 (17)第二节系统运行环境 (18)第三节本章小结 (18)第四章系统设计 (19)第一节系统总体描述 (19)第二节模块设计 (20)一、算法模块设计 (20)二、界面模块设计 (22)第三节系统流程图 (25)第四节本章小结 (26)第五章系统实现 (27)第一节可视化主界面的实现 (27)第二节排序算法界面所实现的功能 (28)第三节二叉查找树可视化功能的实现 (31)第四节本章小结 (33)第六章系统测试 (34)第一节问题解决及测试结果 (34)一、遇到的问题 (34)二、解决的方法 (34)三、测试结果 (34)第二节本章小结 (41)结论 (42)致谢 (43)参考文献 (44)附录 (45)一、英文原文 (45)二、英文翻译 (52)前言可视化( Visualizations)计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。
此次设计算法可视化( Algorithm Visualizations)就是利用可视化技术将算法可视化[1]。
排序是计算机程序设计中的一种重要操作,其功能是一个数据元素(或者记录)的任意序列,从新排列成一个按关键字有序的序列。
算法实现C语言教程

算法实现C语言教程算法是计算机科学中非常重要的一部分,它涉及到问题的解决方法和步骤。
C语言是一种广泛应用于软件开发和系统编程的程序设计语言。
本教程将介绍一些常见的算法,并以C语言实现的方式进行解析,帮助初学者更好地理解算法的基本原理和实现方法。
一、算法简介算法是一种用于解决问题的方法和步骤的描述,它不依赖于任何特定的编程语言或计算机。
算法可以解决各种问题,例如排序、查找、图像处理等。
算法的基本要素包括输入、输出、明确的步骤和终止条件。
二、常见算法1. 排序算法排序算法是将一组数据按照一定的规则进行排列的算法。
常见的排序算法有冒泡排序、选择排序、插入排序、快速排序等。
2. 查找算法查找算法是在一组数据中寻找特定元素的算法。
常见的查找算法有线性查找、二分查找等。
3. 图算法图算法是解决图结构相关问题的算法。
常见的图算法有最短路径算法、最小生成树算法等。
三、算法实现在C语言中,我们可以用函数来实现各种算法。
下面以冒泡排序算法为例进行演示。
```c#include <stdio.h>void bubbleSort(int arr[], int n) {int i, j;for (i = 0; i < n-1; i++) {for (j = 0; j < n-i-1; j++) {if (arr[j] > arr[j+1]) {// 交换arr[j]和arr[j+1]int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90};int n = sizeof(arr) / sizeof(arr[0]);bubbleSort(arr, n);printf("排序后的数组:\n");for (int i=0; i < n; i++)printf("%d ", arr[i]);return 0;}```四、算法分析算法分析是通过评估算法在各种情况下的性能来评价它们的优劣。
四年级信息技术上册《排序》教案

四年级信息技术上册《排序》教案一、教学目标1. 知识与技能目标:让学生了解排序的定义和作用,掌握常见的排序方法(如冒泡排序、选择排序、插入排序等),并能运用排序算法解决实际问题。
2. 过程与方法目标:通过观察、分析、实践等环节,培养学生独立思考、合作交流的能力,提高学生编程解决问题的能力。
3. 情感态度与价值观目标:二、教学内容1. 排序的定义和作用2. 常见排序方法(冒泡排序、选择排序、插入排序等)3. 排序算法的应用三、教学重点与难点1. 教学重点:排序的定义和作用,常见排序方法的原理及应用。
2. 教学难点:排序算法的实现和优化。
四、教学过程1. 导入:利用生活中的一些实例(如整理书架、排序队伍等)引出排序的概念,激发学生的兴趣。
2. 讲解:(1)介绍排序的定义和作用。
(2)讲解常见排序方法(冒泡排序、选择排序、插入排序等)的原理和步骤。
(3)通过实例演示,让学生理解排序算法在实际问题中的应用。
3. 实践:(1)让学生编写程序,实现冒泡排序、选择排序、插入排序等算法。
(2)引导学生分析、优化排序算法,提高排序效率。
4. 总结:对本节课所学内容进行总结,强调排序在实际生活中的重要性。
五、课后作业1. 复习本节课所学内容,整理笔记。
2. 完成课后练习题,巩固所学知识。
3. 选择一个实际问题,运用排序算法进行解决,并将解题过程和代码编写在作业本上。
六、教学评价1. 评价内容:(1)学生对排序的定义和作用的理解程度。
(2)学生对常见排序方法的掌握情况。
(3)学生运用排序算法解决实际问题的能力。
2. 评价方法:(1)课堂问答:通过提问,了解学生对排序概念和排序方法的掌握情况。
(2)课后作业:检查学生完成作业的质量,了解学生对所学知识的运用能力。
(3)编程实践:观察学生在实践环节的表现,评价学生的动手能力和编程技巧。
七、教学反思1. 反思内容:(1)本节课的教学目标是否实现。
(2)教学方法是否适合学生的需求。
数据结构课程设报告—各种排序算法的比较

数据结构课程设计报告几种排序算法的演示1、需求分析:运行环境:Microsoft Visual Studio 20052、程序实现功能:3、通过用户键入的数据, 经过程序进行排序, 最后给予数据由小到大的输出。
排序的方式包含教材中所介绍的几种常用的排序方式:直接插入排序、折半插入排序、冒泡排序、快速排序、选择排序、堆排序、归并排序。
每种排序过程中均显示每一趟排序的细节。
程序的输入:输入所需排序方式的序号。
输入排序的数据的个数。
输入具体的数据元素。
程序的输出:输出排序每一趟的结果, 及最后排序结果1、设计说明:算法设计思想:a交换排序(冒泡排序、快速排序)交换排序的基本思想是: 对排序表中的数据元素按关键字进行两两比较, 如果发生逆序(即排列顺序与排序后的次序正好相反), 则两者交换位置, 直到所有数据元素都排好序为止。
b插入排序(直接插入排序、折半插入排序)插入排序的基本思想是: 每一次设法把一个数据元素插入到已经排序的部分序列的合适位置, 使得插入后的序列仍然是有序的。
开始时建立一个初始的有序序列, 它只包含一个数据元素。
然后, 从这个初始序列出发不断插入数据元素, 直到最后一个数据元素插到有序序列后, 整个排序工作就完成了。
c选择排序(简单选择排序、堆排序)选择排序的基本思想是: 第一趟在有n个数据元素的排序表中选出关键字最小的数据元素, 然后在剩下的n-1个数据元素中再选出关键字最小(整个数据表中次小)的数据元素, 依次重复, 每一趟(例如第i趟, i=1, …, n-1)总是在当前剩下的n-i+1个待排序数据元素中选出关键字最小的数据元素, 作为有序数据元素序列的第i个数据元素。
等到第n-1趟选择结束, 待排序数据元素仅剩下一个时就不用再选了, 按选出的先后次序所得到的数据元素序列即为有序序列, 排序即告完成。
d归并排序(两路归并排序)1、两路归并排序的基本思想是: 假设初始排序表有n个数据元素, 首先把它看成是长度为1的首尾相接的n个有序子表(以后称它们为归并项), 先做两两归并, 得n/2上取整个长度为2的归并项(如果n为奇数, 则最后一个归并项的长度为1);再做两两归并, ……, 如此重复, 最后得到一个长度为n的有序序列。
大班数学公开课《有趣的排序》教案

目录ห้องสมุดไป่ตู้
• 课程介绍与目标 • 排序方法探究 • 排序算法实现 • 排序算法优化与改进 • 排序算法复杂度分析 • 排序算法应用场景探讨 • 总结回顾与拓展延伸
01 课程介绍与目标
排序概念引入
01
通过生活中的实例,如整理书架 、排队等,引入排序的概念。
02
让学生理解排序是按照一定的规 则或标准对物体进行排列的过程 。
• 桶排序、计数排序等线性时间复杂度排序算法:桶排序、计数排序等是一些具 有线性时间复杂度的排序算法,适用于特定场景下的数据排序问题。学生可以 通过了解这些算法的原理和实现过程,进一步拓展自己的算法设计思路。
THANKS
感谢观看
时间复杂度分析
最好情况时间复杂度
当输入数据已经有序时,排序算法所需的最少时间复杂度。例如,冒泡排序和插入排序的 最好情况时间复杂度为O(n)。
最坏情况时间复杂度
当输入数据为逆序时,排序算法所需的最多时间复杂度。例如,冒泡排序和插入排序的最 坏情况时间复杂度为O(n^2)。
平均情况时间复杂度
考虑所有可能的输入数据,排序算法所需的平均时间复杂度。例如,快速排序的平均情况 时间复杂度为O(nlogn)。
时间复杂度比较
不同排序算法的时间复杂度不同,适用于不同规模的输入数据。例如,对于小规模数据,简单选择排序和冒泡排序具 有较好的性能;对于大规模数据,快速排序和归并排序具有更好的性能。
空间复杂度比较
不同排序算法的空间复杂度也有所不同。例如,冒泡排序和插入排序是原地排序,适用于空间有限的场 景;而归并排序则需要较多的额外空间。
数据挖掘中排序算法应用
数据预处理
01
数据结构之查找实例演示系统的设计与实现

界 为止
二叉平衡树查 找模块 : 了要 实现二叉 平衡树 的 除
修 稿 日 期 :0 0 2 2 2 1 —1 — 4
收 稿 日期 :0 0 2 9 2 1 —1 —0
作者 简介 : 文 征 ( 9 0 , , 士研 究 生 , 师 , 究 方 向为 软 件 构 件 开发 与 云计 算 技 术 代 1 8 一) 男 硕 讲 研
版 ) 发 工 具 . 用 F ah中 Acin cit1 生 交 互 效 开 利 ls t Sr [ o p2 产 果 。通 过 A t n cit 以将 外 部 数 据 装 载 到影 片 中I ci S r 可 o p 3 】 ,
查找模块
f
} 帮助模块
静态查找 I
{ 动态查找
点 像 矩 形 阵列 . 以可 以通 过 矩 阵 的方 式 储 存 数 据 。 所
m d的 值 为 md [1 + i ) 】一 直 到 l > i i i=( w hg / , o h 2 o hg w h时 查
找 失 败
这个查找设计 时用 了新的方法 .脱离主框体后 可
以单 独 运 行 . 是 一个 独 立 的 影 片 。 查 找 过 程 的实 现 它 其 用 了 四个 帧 , 一 帧是 代 码 的 初 始 化 ; 二 帧 是 对 数 组 第 第 的 排 序 及 部 分 值 的 初 始 化 以便 再 次 用 时 可 以重 新 运 行 : 三 帧 是 主 要 折 半 查 找 的 实 现 过 程 . 主 要 体 现 是 第 其 通 过 控制 箭 头 的 显示 来 实 现 : 四 帧 实现 滚 回 。 第
户输 入 的数 据 从 后 往 前 逐 个 查 找 直 到 查 找 成 功 或 到 边
中班数学课件《有趣的排序》PPT课件

插入排序算法演示
演示步骤 初始化一个无序序列。 从第一个元素开始,认为该元素 已经被排序。
插入排序算法演示
取出下一个元素,在已经排序的元素序列 中从后向前扫描。
如果该元素(已排序)大于新元素,将该 元素移到下一位置。
重复步骤3,直到找到已排序的元素小于 或者等于新元素的位置。
插入排序算法演示
将新元素插入到该位置后。 重复步骤2~6,直到所有元素都插入到已排序部分并排序完毕。
实现步骤
1. 申请空间,使其大小为两个已经排序 序列之和,该空间用来存放合并后的序列 。 2. 设定两个指针,最初位置分别为两个 已经排序序列的起始位置。
归并排序算法原理及实现
3. 比较两个指针所指向的 元素,选择相对小的元素 放入到合并空间,并移动 指针到下一位置。
4. 重复步骤3直到某一指针 达到序列尾。
编程实践能力。推荐使用Python等语言进行实践。
谢谢您的聆听
THANKS
排序应用
排序在生活和工作中有着广泛的应用,如 整理物品、安排时间、处理数据等。
排序方法
常见的排序方法有冒泡排序、选择排序、 插入排序等。
课程目标与意义
知识目标
掌握排序的基本概念和方 法,了解不同排序算法的
原理和实现。
能力目标
能够运用所学知识解决简 单的排序问题,培养逻辑
思维和算法设计能力。
情感目标
算法设计
在计算机科学中,排序算法是一类重 要的算法,它们被广泛应用于各种场 景,如数组排序、文件排序等。
系统设计
在操作系统、数据库管理系统等系统 设计中,排序也是一项基本功能,用 于管理文件、记录等数据的顺序。
数据结构
排序与数据结构密切相关,比如二叉 搜索树、堆等数据结构都需要利用排 序的思想来实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中北大学数据结构课程设计说明书设计目的本系统是为了实现和比较各种不同排序方法的不同复杂度,而建立的,从不同的角度比较各算法的优劣,从而使使用者能对个排序方法有更清晰的了解.2. 设计内容和要求本次设计的内容主要有实现各种排序算法以及比较各种算法。
要求主要是要执行对一种数据类型的序列进行所有排序方法的排序计算,并返回序列及各算法的排序指标。
3.本设计所采用的数据结构本次设计主要采用的数据结构有结构体定义,直接排序,选择排序,归并排序,快速排序,冒泡排序,希尔排序,堆排序等。
4.功能模块详细设计4.1 详细设计思想本次设计分主题设计和模块设计两部分。
主体设计方面,本系统的主要数据类型为含有一个关键字的结构体类型,命名为datatype;设置两个全局变量数组,cn和mn,分别用于记录每种排序方法中的各排序元素的比较次数和移动次数(关键字交换以3次计)的总和。
模块设计方面,本系统大致可分为排序模块部分和运行模块部分。
排序模块部分分为归并排序模块,快速排序模块,冒泡排序模块,选择排序模块,直接排序模块,希尔排序模块,堆排序模块;运行模块部分分为主函数,自行输入模块,随机模块,输出模块。
以下是各排序算法的核心设计思想:运行模块个算法如下:4.2 核心代码#include<stdio.h>#include<stdlib.h>#include<conio.h>#define MAXNUM 100typedef struct{ int key;} datatype;datatype R[MAXNUM];/*定义类型*/int cn[MAXNUM],mn[MAXNUM];void D_InsertSort(datatype R[ ], int n)/*直接排序*/ {int i,j;extern int cn[MAXNUM],mn[MAXNUM];for(i=2; i<=n; i++){ cn[0]++;if (R[i].key<R[i-1].key){R[0]=R[i]; mn[0]++;for(j=i-1; R[0].key<R[j].key; j--)R[j+1]=R[j];R[j+1]=R[0]; mn[0]+=2;}}}void Select_Sort(datatype R[ ],int n)/*简单选择排序*/ {int i,j,k;extern int cn[MAXNUM],mn[MAXNUM];for(i=1;i<n;i++){ k=i;for(j=i+1; j<=n; j++){cn[1]++;if(R[j].key<R[k].key)k=j;}if (i==k){ R[0]=R[k];R[k]=R[i];R[i]=R[0]; mn[1]+=3; }}}void Bubble_Sort (datatype R[ ], int n)/*冒泡排序*/ {int i, j;extern int cn[MAXNUM],mn[MAXNUM];int swap;for(i=1; i<n-1; i++){swap=0;for(j=1; j<=n-i; j++){cn[2]++;if (R[j].key<R[j+1].key){R[0]=R[j];R[j]=R[j+1];R[j+1]=R[0]; mn[2]+=3;swap=1;}}if(swap==0) break;}}void HeapAdjust(datatype R[ ], int s, int t){datatype rc;extern int cn[MAXNUM],mn[MAXNUM];int i,j ;rc=R[s];i=s;for(j=2*i; j<=t; j=2*j){ cn[3]++;if(j<t && R[j].key<R[j+1].key)j=j+1;if(rc.key > R[j].key) break;R[i]=R[j]; mn[3]++;i=j;}R[i]=rc;}void HeapSort(datatype R[ ], int n)/*堆排序*/{int i;extern int cn[MAXNUM],mn[MAXNUM];for(i=n/2; i>0; i-- )HeapAdjust(R, i, n);for(i=n; i>1; i--){ R[0]=R[1];R[1]=R[i];R[i]=R[0]; mn[3]+=3;HeapAdjust(R,1, i-1);}}void Merge(datatype R[ ], datatype R1[ ], int s, int m , int t) {int i,j,k;extern int cn[MAXNUM],mn[MAXNUM];i=s; j=m+1; k=s;while (i<=m&&j<=t){cn[4]++;if(R[i].key<R[j].key){ R1[k++]=R[i++]; mn[4]++;}else{ R1[k++]=R[j++]; mn[4]++;}}while (i<=m) { R1[k++]=R[i++]; mn[4]++; }while (j<=t) { R1[k++]=R[j++]; mn[4]++;}}void MSort(datatype R[ ], datatype R1[ ], int s, int t){int m;extern int cn[MAXNUM],mn[MAXNUM];if(s==t) { R1[s]=R[s]; mn[4]++;}else {m=(s+t)/2;MSort(R, R1, s, m);MSort(R, R1, m+1, t);Merge(R1, R, s, m, t);}}void MergeSort(datatype R[ ], datatype R1[ ], int n)/*归并排序*/ {MSort(R, R1,1, n);}int Partition(datatype R[ ], int low, int high){extern int cn[MAXNUM],mn[MAXNUM];R[0]=R[low]; mn[5]++;while(low<high){ while(low<high&&R[high].key>=R[0].key) {cn[5]++; high--;} if(low<high) { R[low]=R[high]; low++; mn[5]++; }while(low<high&&R[low].key<R[0].key) { mn[5]++; low++; } if(low<high) {R[high]=R[low]; high--; mn[5]++; } }R[low]=R[0]; mn[5]++;return low;}void Quick_Sort(datatype R[ ], int s, int t)/*快速排序*/{int i;if( s<t ){i = Partition(R, s, t);Quick_Sort(R, s, i-1);Quick_Sort(R, i+1, t);}}void prin(datatype R[],int n){int i ;printf("排序的结果为:");for(i=1;i<=n;i++)printf("%d ",R[i]);printf("\n ");}void sort(datatype R[],int n)/*希尔排序*/{int gap,i,j,temp;extern int cn[MAXNUM],mn[MAXNUM];for(gap=n/2;gap>0;gap /= 2) /* 设置排序的步长,步长gap每次减半,直到减到1 */{for(i=gap;i<n;i++) /* 定位到每一个元素 */{for(j=i-gap;(j >= 0) && (R[j].key > R[j+gap].key);j -= gap ) /* 比较相距gap远的两个元素的大小,根据排序方向决定如何调换 */{temp=R[j].key;R[j].key=R[j+gap].key;R[j+gap].key=temp;cn[6]+=1;mn[6]+=3;}}}}void sui_ji(){int i,n;datatype R[MAXNUM]={0},R1[MAXNUM]={0};;a:printf("请输入你要输入的个数:");scanf("%d",&n);if(n>100){printf("超出范围重新输入\n");goto a;}printf("排序前元素顺序为:");for(i=1;i<n+1;i++){R[i].key=rand();printf("%d ",R[i].key);}printf("\n");D_InsertSort(R,n);/*直接排序*/prin(R,n);Select_Sort(R,n);/*简单选择排序*/Bubble_Sort(R, n);/*冒泡排序*/HeapSort(R, n);/*堆排序*/MergeSort(R, R1, n);/*二路归并排序*/Quick_Sort(R,0, n);/*快速排序*/sort(R,n);/*希尔排序*/}void zi_xing_input(){ int n,i;datatype R1[MAXNUM]={0};printf("请输入你要输入的个数(不大于100的整数):");scanf("%d",&n);printf("请输入各个元素:");for(i=1;i<n+1;i++)scanf("%d",&R1[i].key);printf("排序前元素顺序为:");for(i=1;i<n+1;i++) printf("%d ",R1[i].key);printf("\n");D_InsertSort(R1,n);/*直接排序*/prin(R1,n);Select_Sort(R1,n);/*简单选择排序*/Bubble_Sort(R1, n);/*冒泡排序*/HeapSort(R1, n);/*堆排序*/Quick_Sort(R1,0, n);/*快速排序*/sort(R,n);/*希尔排序*/}int main(){extern int cn[MAXNUM],mn[MAXNUM];char s;printf(“排序算法实现与演示统 \n ”);printf(" ┏******************************┓\n");printf(" ┃------- 欢迎使用 ----┃\n");printf(" ┃-----(1)随机取数-------┃\n");printf(" ┃-----(2)自行输入-------┃\n");printf(" ┃-----(0)退出使用-------┃\n");printf(" ┗******************************┛\n");printf(" 请选择操作方式: ");b:s=getch();switch(s){case '1': system("cls") ; sui_ji(); break;case '2': system("cls"); zi_xing_input(); break;case '0': printf(" 谢谢使用!!"); exit(0); break;default:printf("错误输入,重新输入!");goto b;}printf("\n ");printf(" 比较结果\n");printf(" \n");printf(" 排序方式比较次数移动次数\n"); printf(" \n");printf(" 直接 %d %d \n",cn[0],mn[0]/3);printf(" \n");printf(" 简单选择 %d %d \n",cn[1],mn[1]/3); printf(" \n");printf(" 冒泡 %d %d \n",cn[2],mn[2]/3);printf(" \n");printf(" 堆排序 %d %d \n",cn[3],mn[3]/3);printf(" \n");printf(" 二路归并 %d %d \n",cn[4],mn[4]/3);printf(" \n");printf(" 快速 %d %d \n",cn[5],mn[5]/3);printf(" \n");printf(" 希尔排序 %d %d \n",cn[6],mn[6] /3);getchar();printf("谢谢使用!^ _ ^\n");system("PAUSE");return 0;}(此页附在说明书后,请在验收前填好)文档已经阅读完毕,请返回上一页!。