排序算法实验报告.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
排序算法实验报告
八种排序算法的数据结构实验报告
首先,实验的内容是编写一个关于八种排序算法的C语言程序,它需要直接插入排序、Hill排序、简单选择排序、堆排序、冒泡排序、快速排序、合并排序和基数排序。
二、各种内部排序算法的实验步骤比较:
1.八种排序算法(时间和空间)的复杂性分析。
2.八种排序算法的c语言编程实现。
3.八种排序算法的比较,包括比较时间和移动时间。
三、稳定性、时间复杂性和空间复杂性分析及时间复杂性函数的比较:
时间复杂度函数O(n)的增长导致n个记录的更大排序。
一般选择时间复杂度为0(nlog2n)的排序方法。就时间复杂性而言:
(1)二次排序(0(N2))排序各种简单排序:直接插入、直接选择和气泡排序;
(2)线性对数顺序(0(nlog2n))排序快速排序、堆排序和合并排序;
(3)0(N1)排序,它是0和1之间的常数。
希尔排序(4)线性顺序(0(n))排序基数排序,除了桶和盒排序。
描述:
当原始表被排序或基本排序时,直接插入排序和冒泡排序将大大
减少比较的次数和移动记录的数量,时间复杂度可以降低到O(n);
另一方面,快速排序正好相反。当原始表基本上被排序时,它将退化为冒泡排序,时间复杂度将增加到0(N2)。
原始表是否有序对简单选择排序、堆排序、合并排序和基数排序的时间复杂度影响不大。
稳定性:
排序算法的稳定性:如果在要排序的序列中存在多个具有相同关键字的记录,如果这些记录的相对顺序在排序后保持不变,则该算法被认为是稳定的;
如果排序后记录的相对顺序发生了变化,算法就不稳定。稳定性的好处:
如果排序算法稳定,则从一个键排序,然后从另一个键排序。第一键排序的结果可以用于第二键排序。基数就是这样排序的。首先,它们按低顺序排列,然后按高顺序排列。具有相同的低阶和高阶的元素不会改变。此外,如果排序算法稳定,可以避免冗余比较。
稳定的排序算法:
冒泡排序、插入排序、合并排序和基数排序不是稳定的排序算法;
选择排序、快速排序、堆积排序、堆积排序
第四,通过内部排序和外部排序对设计细节进行排序。内部排序是对内存中的数据记录进行排序,而外部排序是在排序过程中访问外部内存,因为排序后的数据太大,无法同时容纳所有排序后的记录。我们来谈谈八级排名是内部排名。1.插入排序-
首先,实验的内容是编写一个关于八种排序算法的C语言程序,它需要直接插入排序、Hill排序、简单选择排序、堆排序、冒泡排序、快速排序、合并排序和基数排序。
二、各种内部排序算法的实验步骤比较:
1.八种排序算法(时间和空间)的复杂性分析。
2.八种排序算法的c语言编程实现。
3.八种排序算法的比较,包括比较时间和移动时间。
三、稳定性、时间复杂性和空间复杂性分析及时间复杂性函数的比较:
时间复杂度函数O(n)的增长导致n个记录的更大排序。
一般选择时间复杂度为0(nlog2n)的排序方法。就时间复杂性而言:
(1)二次排序(0(N2))排序各种简单排序:直接插入、直接选择和气泡排序;
(2)线性对数顺序(0(nlog2n))排序快速排序、堆排序和合并排序;
(3)0(N1)排序,它是0和1之间的常数。
希尔排序(4)线性顺序(0(n))排序基数排序,除了桶和盒排序。
描述:
当原始表被排序或基本排序时,直接插入排序和冒泡排序将大大减少比较的次数和移动记录的数量,时间复杂度可以降低到O(n);
另一方面,快速排序正好相反。当原始表基本上被排序时,它将退化为冒泡排序,时间复杂度将增加到0(N2)。
原始表是否有序对简单选择排序、堆排序、合并排序和基数排序的时间复杂度影响不大。
稳定性:
排序算法的稳定性:如果在要排序的序列中存在多个具有相同关键字的记录,如果这些记录的相对顺序在排序后保持不变,则该算法被认为是稳定的;
如果排序后记录的相对顺序发生了变化,算法就不稳定。稳定性的好处:
如果排序算法稳定,则从一个键排序,然后从另一个键排序。第一键排序的结果可以用于第二键排序。基数就是这样排序的。首先,它们按低顺序排列,然后按高顺序排列。具有相同的低阶和高阶的元素不会改变。此外,如果排序算法稳定,可以避免冗余比较。
稳定的排序算法:
冒泡排序、插入排序、合并排序和基数排序不是稳定的排序算法;
选择排序、快速排序、堆积排序、堆积排序
第四,通过内部排序和外部排序对设计细节进行排序。内部排序是对内存中的数据记录进行排序,而外部排序是在排序过程中访问外部内存,因为排序后的数据太大,无法同时容纳所有排序后的记录。我们来谈谈八级排名是内部排名。1.插入排序:在排序后的有序表中插入一条记录,以获得一个包含1条以上记录的新有序表。也就是说,序列的第一个记录被视为有序子序列,然后从第二个记录开始一个接一个地插入,直到整个序列被排序。要点:
设置岗哨来临时存储和判断阵列边界。直接插入排序示例:
如果遇到与插入元素相等的元素,插入元素会将要插入的元素放在等效元素之后。因此,前后相等元素的顺序没有改变,从原来无序的顺序中出来的顺序就是排列好的顺序,所以插入顺序是稳定的。老化分析:
时间复杂性:
O (n 2) 2。插入排序——壳牌公司的希尔排序是壳牌公司在1959年提出的,这是对直接排序的重大改进。希尔排序也被称为减少增量排序的基本思想:
首先,要排序的整个记录序列被分成几个子序列,分别直接插入和排序。当整个序列中的记录是“基本有序的”时,那么所有的记录都直接按顺序插入——首先,序列的第一个记录被认为是有序的子序列,然后第二个记录被一个接一个地插入,直到整个序列被排序。要点:
设置岗哨来临时存储和判断阵列边界。直接插入排序示例:
如果遇到与插入元素相等的元素,插入元素会将要插入的元素放在等效元素之后。因此,前后相等元素的顺序没有改变,从原来无序的顺序中出来的顺序就是排列好的顺序,所以插入顺序是稳定的。老化分析:
时间复杂性:
O (n 2) 2。插入排序——壳牌公司的希尔排序是壳牌公司在1959年提出的,这是对直接排序的重大改进。希尔排序也被称为减少增量