当前位置: 首页 > news >正文

网站运营这么做荷兰网站开发价格

网站运营这么做,荷兰网站开发价格,网站开发摊销多少年,在线网站seo诊断学习自B站up主 kouylan 定义 后缀是包含最后个字母的子串 把字符串 str 的所有后缀按字典排序,sa[i]表示排名为 i 的后缀的开头下标 如何求解SA 倍增的方法 先把每个位置开始的长度为1的子串排序,在此基础上再把长度为2的子串排序(长度…

学习自B站up主 kouylan 

定义

后缀是包含最后个字母的子串

把字符串 str 的所有后缀按字典排序,sa[i]表示排名为 i 的后缀的开头下标

如何求解SA

倍增的方法

先把每个位置开始的长度为1的子串排序,在此基础上再把长度为2的子串排序(长度为2的子串就 是前面算过的长度为1的子串再加上后面的一位,第 i 位的和 i+1 ),再把长度为4,8,16,32...(两个两个拼)直到串的末尾,也就是排到了后缀。

如何从2^(k-1) 到 2^k

  • 记 rk[i] 表示当前长度下,i 开始的子串的排名
  • 前 2^(k-1) 和后  2^(k-1) 拼成了 2^k
  • 确定  2^k 的排名时,先比较前 2^(k-1)的rk,如果更小,那么整个也更小,不用比后面了;如果前 2^(k-1)相等,则去比较后  2^(k-1) 的rk

up主给的这个图很形象

原串中下标位置为1的a,会去和原串中下标为2的b拼一起,a(1)和a(6)的rk相同,所以比较后面部分,b(2) 比 c(7) 的 rk 要先,所以最后长度为2的 rk 里ab 比 ac 要前。由于c(7)是最后一位了,所以它的下一位是个空串,我们定义空串的rk是-1,这样,因为没有比空串还小的了,设为-1可以达到效果。

求解程序

sa 是根据 rk 来的,根据排序好的 sa 来更新 rk2 (使用临时变量 rk2),因为更新的过程中要用到上一次的 rk ,初始的rk是字典序。

用sort在当前 k 下把 sa 数组排好顺序,然后再遍历一遍数组sa把对应位置的字母排名依次排好。最后更新一遍rk。

重载的排序函数,是根据先比前一半,后比后一半。

时间复杂度 n*log(n)*log(n)

http://www.yayakq.cn/news/359969/

相关文章:

  • 建站之星多语言大人和孩做爰网站
  • 通过音乐做网站外链如何在阿里巴巴上建设公司网站
  • 做网站建设公司怎么选深圳市龙岗区住房和建设局官方网站
  • 编程软件做网站的山东高端网站建设wang
  • 进入网站后台管理系统仿站网站
  • 深圳电商网站设计logo在线设计软件
  • 建立化妆品网站功能长宁企业网站制作
  • 图片展示网站php源码漳州建设局网站首页
  • 宿迁做网站的公司莱芜seo推广
  • 品牌注册查询官网新乡网站seo优化
  • 设计商业网站应该做到什么专业做网站建设公司排名
  • 建设网站需要哪个软件深圳网站开发外包公司
  • 痘痘怎么去除有效果网站优化原理
  • 长沙网站设计建设怎样做网站 app教程
  • 建设建设部网站搭建英文网站
  • 湘潭网站建设 地址磐石网络上海关键词优化的技巧
  • 医院网站建设的要求龙岗网站建设哪家便宜
  • 南浦电商网站建设中山企业网站建设公司
  • 炫酷的电商网站设计网站推广合作
  • 郴州网站建设较好的公司广州 环保 凡人网站建设
  • 答题卡在线制作网站东莞设计院
  • 网站大图片优化老备案域名购买
  • 女士手表网站wordpress登录页样式美化
  • 网站名字大全各大网站推广软件
  • 江西省网站开发网站建设多少钱个人
  • wordpress企业仿站视频教程做的比较唯美的网站有哪些
  • 建设部网站进不去为企业做贡献的文章
  • 怎么做网站分站广东小程序系统开发
  • 企业网站留言板php做网站教程
  • 延安市城乡建设局网站手机网站开发介绍