zoukankan      html  css  js  c++  java
  • 算法导论83排序不同长度的数据项

    题目:

    a)给定一个整数数组,其中不同的整数中包含的数字个数可能不同,但是该数组中,所有整数中总的数字数为n。说明如何在O(n)时间内对该数组进行排序

    b)给定一个字符串数组,其中不同的串包含的字符个数可能不同,但所有串中总的字符个数为n。说明如何在O(n)时间内对该数组进行排序

    (注意此处的顺序是指标准的字母顺序,例如,a < ab < b)

    思路:

    a)先用桶排序方法按数字位数排序O(n),再用基数排序的方法分别对每个桶中的元素排序O(n)
    b)递归使用计数排序,先依据第一个字母进行排序,首字相同的放在同一组,再对每一组分别使用计数排序的方法比较第二个字母
    见到有人用字典树,也是可以的

    代码:

    a)


    b)


    四、效果:

    a)

    b)

     

  • 相关阅读:
    PHP7.X 安装mysql扩展
    雷军说云计算是下一个风口
    玩转超级列表框4 拖放组建的使用。
    玩转超级列表框第三课的自编代码
    易语言核心支持库 文本操作与文件读写
    插入表项的标题和置标题的标题的区别
    精易模块8.2 类_超级列表框 外部超级列表框的区别和使用注意点
    如何理解动态规划
    雷军:互联网思维本质上就是群众路线
    纯互联网项目“失宠”乐博资本杨宁称今后只投O2O
  • 原文地址:https://www.cnblogs.com/windmissing/p/2559795.html
Copyright © 2011-2022 走看看