跳转至

5.13. 总结

5.13. Summary

  • 顺序搜索对有序和无序列表的时间复杂度是 \(O(n)\)
  • 对有序列表进行二分搜索的最坏情况时间复杂度是 \(O(\log{n})\)
  • 哈希表可以提供常数时间的查找。
  • 冒泡排序、选择排序和插入排序的时间复杂度都是 \(O(n^{2})\)
  • 希尔排序通过排序递增的子列表来改进插入排序。其时间复杂度介于 \(O(n)\)\(O(n^{2})\) 之间。
  • 归并排序的时间复杂度是 \(O(n \log{n})\),但需要额外的空间来进行归并过程。
  • 快速排序的时间复杂度是 \(O(n \log{n})\),但如果划分点不在列表的中间附近,可能会退化为 \(O(n^{2})\)。它不需要额外的空间。
  • A sequential search is \(O(n)\) for ordered and unordered lists.
  • A binary search of an ordered list is \(O(\log{n})\) in the worst case.
  • Hash tables can provide constant time searching.
  • A bubble sort, a selection sort, and an insertion sort are \(O(n^{2})\) algorithms.
  • A Shell sort improves on the insertion sort by sorting incremental sublists. It falls between \(O(n)\) and \(O(n^{2})\).
  • A merge sort is \(O(n \log{n})\), but requires additional space for the merging process.
  • A quicksort is \(O(n \log{n})\), but may degrade to \(O(n^{2})\) if the split points are not near the middle of the list. It does not require additional space.

最后更新: 2024年9月13日
创建日期: 2024年9月9日