几大排序算法比较:

比较排序包括:

  • 快速排序
  • 堆排序
  • 归并排序
  • 插入排序
  • 选择排序
  • 冒泡排序

非比较排序包括:

  • 基数排序
  • 计数排序
  • 桶排序

稳定的排序

  • 冒泡排序(bubble sort)— O(n2)
  • 插入排序(insertion sort)—O(n2)
  • 鸡尾酒排序(cocktail sort)—O(n2)
  • 桶排序(bucket sort)—O(n);需要O(k)额外空间
  • 计数排序(counting sort)—O(n+k);需要O(n+k)额外空间
  • 归并排序(merge sort)—O(n log n);需要O(n)额外空间
  • 原地归并排序— O(n log2n)如果使用最佳的现在版本
  • 二叉排序树排序(binary tree sort)— O(n log n)期望时间;O(n2)最坏时间;需要O(n)额外空间
  • 鸽巢排序(pigeonhole sort)—O(n+k);需要O(k)额外空间
  • 基数排序(radix sort)—O(n·k);需要O(n)额外空间
  • 侏儒排序(gnome sort)— O(n2)
  • 图书馆排序(library sort)— O(n log n)期望时间;O(n2)最坏时间;需要(1+ε)n额外空间
  • 块排序(block sort)— O(n log n)

不稳定的排序

  • 选择排序(selection sort)—O(n2)
  • 希尔排序(shell sort)—O(nlog2n)如果使用最佳的现在版本
  • Clover排序算法(Clover sort)—O(n)期望时间,O(n2)最坏情况梳排序— O(nlogn)
  • 堆排序(heap sort)—O(nlogn)
  • 平滑排序(smooth sort)— O(nlogn)
  • 快速排序(quick sort)—O(nlogn)期望时间,O(n2)最坏情况;对于大的、随机数列表一般相信是最快的已知排序

results matching ""

    No results matching ""