没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
各专业全套优秀毕业设计图纸
计算机学院
数据结构课程设计
题 目:数据结构排序算法演示系统
班 级:
姓 名:
学 号:
同组人姓名:
起 迄 日 期:
课程设计地点:
指导教师:
评阅意见:
成绩评定:
评阅人: 日期:
完成日期:2014 年 12 月
目录
1
一. 设计目的
随着计算机技术的发展,各种排序算法不断的被提出。排序算法在计算机
科学中有非常重要的意义,且应用很广泛。在以后的发展中排序对我们的学习
和生活的影响会逐渐增大,很有必要学习排序知识。此次课程设计一方面使自
己掌握排序的知识,另一方面锻炼一下团队合作开发系统的能力。
二. 设计内容和要求
功能要求:
(1)界面友好,易与操作。可采用菜单或其它人机对话方式进行选择。
(2)实现各种内部排序。包括直接插入排序,冒泡排序,直接选择排序,希尔排
序,快速排序,堆排序,归并排序。
(3)待排序的元素的关键字为整数或(字符)。可用随机数据和用户输入数据作
测试比较。比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字
交换以 3 次计)。
(1) 演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标
值的列表,以便比较各种排序的优劣。
三. 本设计所采用的数据结构
typedef struct
{
int key;
}RecType;
四.功能模块详细设计
希尔排序
排序算法演示系统
冒泡排序 归并排序快速排序
直接插入排序
直接选择排序 堆排序
2
4.1 详细设计思想
主函数:
#include<stdio.h>
#include<stdlib.h>
#include <math.h>
#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()
{
RecType S[100];
int i,k;
char ch1,ch2,q;
printf("\n\t\t*********** 排 序 算 法 演 示 系 统 ************\n\n\t\t 请 输
入%d 个待排序的数据:\n",L);
for(i=1;i<=L;i++)
{
printf("\t\t 请输入第%dth 数据:",i);
scanf("%d",&S[i].key);
getchar();
}
ch1='y';
while(ch1=='y')
{
printf("\n\t\t 菜 单 \n");
printf("\n\t\t***********************************************\
n");
printf("\n\t\t * 1--------更新排序数据* 2--------直接插入排序 \n");
printf("\n\t\t * 3--------希 尔 排 序* 4--------冒 泡 排 序 \n");
printf("\n\t\t * 5--------快 速 排 序* 6--------直接选择排序 \n");
printf("\n\t\t * 7--------堆 排 序 * 8--------归 并 排 序 \n");
printf("\n\t\t **********0--------退 出************ \n");
3
printf("\n\t\t********************************************\n");
printf("\n\t\t 请选择:");
scanf("%c",&ch2);
getchar();
for(i=1;i<=L;i++)
{
R[i].key=S[i].key;
}
switch(ch2)
{
case '1':
printf("\n\t\t 请输入%d 个待排序数据\n\t\t",L);
for(i=1;i<=L;i++)
{
scanf("%d",&S[i].key);
getchar();
printf("\t\t");
}
printf("\n\t\t 数据输入完毕!");
break;
case '2':
Insertsort();
break;
case '3':
Shellsort();
break;
case '4':
Bubblesort();
break;
case '5':
printf("\n\t\t 原始数据为(按回车键开始排序):\n\t\t");
for(k=1;k<=L;k++)
{
printf("%5d",R[k].key);
}
getchar();
printf("\n");
num=0;sun=0;sum=0;
Quicksort(1,L);
printf("\n\t\t 排序最终结果是:\n\t\t");
for(k=1;k<=L;k++)
{
printf("%5d",R[k].key);
}
剩余63页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 79
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功