比较计数排序

比较计数排序(Comparison Counting Sort)是一种稳定的线性时间排序算法,此种算法时间复杂度虽然是平方时间,但它是拥有较强抗干扰能力和稳固性的排序算法。

比较计数排序的特征

此种算法把每个项目与其它项目作比较,计数出每个项目大于(或小于)它的项目个数,此数字及可当作各个项目排序的基准值。此种算法与冒泡排序一样时间复杂度都是平方时间,不受传统计算机科学青睐,但容错率超群。

Python 2.7 实现

def compare_counter_sort(l):
    C = []
    for i in l:
        count = 0
        for j in l:
            if j < i:
                count += 1

        while(count in C):
            count += 1

        C.append(count)

    return [l[C.index(i)] for i in xrange(len(l))]

if __name__ == '__main__':
    print compare_counter_sort([4, 5, 1, 2, 5, 6, 5, 5, 5, 1])

原文地址:https://zh.wikipedia.org/wiki/%E6%AF%94%E8%BC%83%E8%A8%88%E6%95%B8%E6%8E%92%E5%BA%8F

知识共享 署名-相同方式共享 3.0协议之条款下提供

文章作者: 张拓
文章链接: http://www.xssl.online/%e6%af%94%e8%be%83%e8%ae%a1%e6%95%b0%e6%8e%92%e5%ba%8f/
版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议。转载请注明来自 张拓的博客
浏览次数: 387

张拓

陕西西安蓝田张拓QQ1070410059。一生所求不过“心安”二字。 然,尘世多纷扰。

发表回复