1 数据结构课程设计报告题目:专业:班级:学号:姓名:2 指导老师:时间:3 一、课程设计题目及所涉及知识点设计题目:排序算法实现知识点: malloc 申请连续存储空间、冒泡排序、快速排序、直接插入排序的算法实现、结构体的定义与调用、函数的递归调用二、课程设计思路及算法描述设计思路: 1、确定程序要实现的功能即(1)允许用户输入一组数据,任意多个。(2)由用户选择对该组数据进行排序的方法:直接插入排序、冒泡排序、快速排序。并可以查看每趟排序的结果。2、确定程序所需要的功能块,存储结构- 结构体, malloc 申请存储空间,各功能函数-- 冒泡排序功能块maopao() ;、直接插入排序功能块insertsort();、快速排序 q_sort();、数据访问功能块 traveres();、数据输出功能块liststring();主函数部分main() ;。3、编写代码具体实现各项功能,并进行调试。算法描述:冒泡排序( Bubble Sorting)的基本思想:设待排序 n个元素存放在数组a[n] 中, 无序区范围初始为(a(0),a(1),a(2),...,a[n-1]),冒泡排序方法是在当前无序区内, 从最上面的元素a[0] 开始 , 对每两个相邻的元素a[i+1]和a[i](i=0,1,...,n-1)进行比较 , 且使值较小的元素换至值较大的元素之上( 若 a[i]>a[i+1],则 a[i]和 a[i+1]的值互换 ), 这样经过一趟冒泡排序后, 假设最后下移的元素为a[k],则无序区中值较大的几个元素到达下端并从小到大依次存放在a[k+1],a[k+2],...a[n-1]中, 这样无序区范围变为(a[0],a[1],a[2],...,a[k])。在当前无序区内进行下一趟冒泡排序。这个过程一直到某一趟排序中不出现元素交换的动作,排序结束。 整个排序过程最多执行n-1 遍。算法实现:void BubbleSort(SeqList R) //R (l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序{ int i,j ;Boolean exchange ; //交换标志for(i=1;i=i;j--) //对当前无序区R[i..n]自下向上扫描if(R[j+1].key