数据结构课程设计排序算法演示系统 联系客服

发布时间 : 星期五 文章数据结构课程设计排序算法演示系统更新完毕开始阅读f68c5d0ebb68a98271fefa70

1. 设计目的

随着计算机技术的发展,各种排序算法不断的被提出。排序算法在计算机科学中有非常重要的意义,且应用很广泛。在以后的发展中排序对我们的学习和生活的影响会逐渐增大,很有必要学习排序知识。此次课程设计一方面使自己掌握排序的知识,另一方面锻炼一下团队合作开发系统的能力。 2.1 设计内容和要求

设计内容:

(1)实现各种内部排序。包括直接插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,归并排序,堆排序。

(2)待排序的元素的关键字为整数或(字符)。可用随机数据和用户输入数据作测试比较。比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换以3次计)。 (3)演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标值的列表,以便比较各种排序的优劣。 3. 本设计所采用的数据结构

typedef struct {

int key; }RecType; 4. 功能模块详细设计

4.1 详细设计思想 主函数:

#include #include #include

#define L 8 //排序元素个数 #define FALSE 0 #define TRUE 1

typedef struct { int key; }RecType;

RecType R[L]; int num; int sum;

int sun; //定义排序趟数的全局变量 //主函数 int main()

{

Seqlist S; int i,k;

char ch1,ch2,q;

printf(\ 排序算法演示系统\\n\\n\\t\\t请输入%d个待排序的数据:\

for(i=1;i<=L;i++) {

scanf(\ getchar(); printf(\ }

ch1='y';

while(ch1=='y') { printf(\

1

printf(\ 菜 单 \\n\ printf(\ printf(\ 1--------更新排序数据 2--------直接插入排序 \\n\ printf(\ 3--------希 尔 排 序 4--------冒 泡 排 序 \\n\ printf(\ 5--------快 速 排 序 6--------直接选择排序 \\n\ printf(\ 7--------堆 排 序 8--------归 并 排 序 \\n\ printf(\ 0--------退 出 *** \\n\ printf(\ printf(\请选择:\ scanf(\ getchar();

for(i=1;i<=L;i++) {

R[i].key=S[i].key; }

switch(ch2) {

case '1':

printf(\请输入%d个待排序数据\\n\\t\\t\ for(i=1;i<=L;i++) {

scanf(\ getchar(); printf(\ }

printf(\数据输入完毕!\ break; case '2': Insertsort(); break;

case '3': Shellsort(); break;

case '4': Bubblesort(); break;

case '5':

printf(\原始数据为(按回车键开始排序):\\n\\t\\t\ for(k=1;k<=L;k++) {

printf(\ }

getchar(); printf(\

2

num=0;sun=0;sum=0; Quicksort(1,L);

printf(\排序最终结果是:\\n\\t\\t\ for(k=1;k<=L;k++) {

printf(\ } printf(\比较次数是:%d\\n\\t\\t\ printf(\交换次数是:%d\\n\\t\\t\ break;

case '6': Selectsort(); break;

case '7': Heap(); break; case '8': Mergesort(); break;

case '0': ch1='n'; break; default:

system(\清屏

printf(\对不起,您输入有误,请重新输入!\\n\ break; }

if(ch2!='0') {

if(ch2=='2'||ch2=='3'||ch2=='4'||ch2=='5'||ch2=='6'||ch2=='7'||ch2=='8') {

printf(\排序完毕!\ printf(\按回车键继续!\ q=getchar(); if(q!='\\n') {

getchar(); ch1='n'; } } } } return 1; }

3