排序算法设计分析报告.docxVIP

  • 32
  • 0
  • 约2.32千字
  • 约 9页
  • 2019-03-01 发布于安徽
  • 举报
. .. 排序算法分析报告 题目要求: 分别设计实现插入排序、合并排序、快速排序算法,设计测试数据集测试算法正确性、复杂度及效率。 算法描述: (1)插入排序: 思路:插入排序即将数组看成两部分,前段为已排序序列,后段为未排序列,将后段第一个元素按照排序方式,插入到前段序列中,每次增加1个数到有序区,不断重复直至排序完成。 最好情况:数据按正序即非递减排列,比较次数n-1,腾挪次数为0。 最坏情况:数据按逆序排列即递减排列,比较次数为n(n-1)/2,腾挪次数为n(n-1)/2。 平均情况:数据按随机排列,比较次数约为(n2)/4,移动次数也为(n2)/4。 时间复杂度:O(n2)。 (2)合并排序: 思路:待排序数组采用分治法,看成合并两个有序的长度为N/2的数组,再一分为二,直至仅剩一个数据。再两两合并,最终形成一个有序序列。 最好情况、最坏情况、平均情况,合并排序的时间复杂度都是O(nlog2n)。算法的时间复杂度为O(nlog2n)。 (3)快速排序: 思路:在本次算法程序中,采用随机快速排序,通过生成随机数的方式指定基准数据,并将其放在第一位,再对于其两侧的序列进行同样的排序方式,直至形成有序序列。相对于普通快速排序将第一位作为基准来说,避免了倒序和正序排列时,每次只能将无序序列长度缩小1的弊端。 由于基准数据是随机指定的,因此算法复杂度均为O(nlo

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档