决策树
决策树是用来证明下界的抽像概念。 决策树是一棵二叉树。每个节点表示在元素之间一组可能 的排序。 它与已经进行的比较一致。比较的结果是树的边。
N个元素排序的决策树必然有 N!个树叶。 只使用元素间比较的任何排序算法在最坏情况下至少需要[log(N!)]次比较。 只使用元素间比较的任何排序算法需要进行O(NlogN)次比较.
证明: log(N!) = log(N (N-1).....(2) (1))
= log N + log (N-1) + ....+ log 2 + log 1
>= N + log (N-1) + ....+ log N/2
>= N/2logN/2
>= N/2log - N/2
= O(NlogN)
快速排序 合并排序 堆排序都能在 O(nlgn) 的时间内排序 n 个数。
而 线性时间的 排序算法:计数排序 基数排序 桶排序 都用非比较的一些操作来排序。
*******************************************************************************
[rofor专区]
题目:
对给定的 N个元素进行 递归形式 的快速排序,设子表的 第3大元素为 枢轴 (子表小于3个元素的, 以子表第一个元素为枢轴)。
求 元素交换 的次数。