排序算法C实现.docxVIP

  • 2
  • 0
  • 约1.24万字
  • 约 14页
  • 2018-08-22 发布于贵州
  • 举报
排序算法C实现

HYPERLINK /zhaoshuai1215/p/.html 各种排序算法总结和比较 ?? ? ? 排序算法可以说是一项基本功,解决实际问题中经常遇到,针对实际数据的特点选择合适的排序算法可以使程序获得更高的效率,有时候排序的稳定性还是实际问题中必须考虑的,这篇博客对常见的排序算法进行整理,包括:插入排序、选择排序、冒泡排序、快速排序、堆排序、归并排序、希尔排序、二叉树排序、计数排序、桶排序、基数排序。 ?? ? ? 代码都经过了CodeBlocks的调试,但是很可能有没注意到的BUG,欢迎指出。 ?? ? ??比较排序和非比较排序 ? ? ? 常见的排序算法都是比较排序,非比较排序包括计数排序、桶排序和基数排序,非比较排序对数据有要求,因为数据本身包含了定位特征,所有才能不通过比较来确定元素的位置。 ? ? ? 比较排序的时间复杂度通常为O(n2)或者O(nlogn),比较排序的时间复杂度下界就是O(nlogn),而非比较排序的时间复杂度可以达到O(n),但是都需要额外的空间开销。 ? ? ? 比较排序时间复杂度为O(nlogn)的证明: ? ? ??a1,a2,a3……an序列的所有排序有n!种,所以满足要求的排序a1,a2,a3……an(其中a1=a2=a3……=an)的概率为1/n!。基于输入元素的比较排序,每一次比较的返回不是0就是1,这恰好可以作为决策树的一个决

文档评论(0)

1亿VIP精品文档

相关文档