zoukankan      html  css  js  c++  java
  • 算法导论: 第8章

    8.1-4 n/k个k大小的有序子序列排序

    每个k大小的序列有k!种排列可能,所以n/k个子序列有(k!)^(n/k)个子序列,也即决策树至少要有这么多个叶子。设树高为h,则有

    2^h >= (k!)^(n/k),得h >= lg((k!)^(n/k)) = (n/k)lg(k!) >= (n/k)lg((k/2)^(k/2)) = (n/2)lgk

    8-3 排序不同长度的数据项

    a) 先用计数排序按“数字位数”进行排序,然后再用基数排序对位数相同的每个桶内的数字排序。

    b) 根据第一个字母排序(计数排序),然后对第一个字母相同的每组递归用按首字母排序计数排序。

    8-5 平均排序

    d) 建立k个筐,然后依次循环放入元素:a[1]->1筐,a[2]->2筐,……,a[k]->k筐;然后循环,a[k+1]->1筐,a[k+2]->2筐

    这样,最后将n个元素放完后,就有k个完全不重叠的筐,依次为:

    1筐:{a[1],a[1+k],a[1+2k],a[1+3k]};

    2筐:{a[2],a[2+k],a[2+2k],a[2+3k]};

    ……

    每个筐最多有n/k个元素,排序用(n/k)lg(n/k),总共用O(nlg(n/k))

    e)如d中一样分筐,则每个筐内的元素已经是排好序的,然后对这k个筐进行k路归并(维护一个k元素的最小堆)

  • 相关阅读:
    数据压缩API
    Dll劫持
    傀儡进程
    自定义网页右键菜单总结
    自定义checkbox, radio样式总结
    有趣的鼠标悬浮模糊效果总结
    听指令的小方块(二)总结
    听指令的小方块(一)总结
    表单(三)联动总结
    表单(二)多个表单项的动态校验总结
  • 原文地址:https://www.cnblogs.com/rolling-stone/p/3655250.html
Copyright © 2011-2022 走看看