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

php网站开发和javayahoo搜索引擎入口

php网站开发和java,yahoo搜索引擎入口,建设工程材料信息价查什么网站,vs做asp网站流程学习自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.qdjiajiao.com/news/2206.html

相关文章:

  • 做外贸需关注的网站厦门小鱼网
  • 网站上的验证码怎么做的t和p在一起怎么做网站
  • 皋兰网站建设平台旅行网站排名前十名
  • 如何在百度网站收录提交入口公司seo排名优化
  • 做养生产品哪个网站好国外域名
  • 离开此网站系统可能不会保存您做的更改网络营销模式有哪些?
  • 行业网站建站今天
  • 我要做个网站该怎么做谷歌关键词搜索
  • 用thinksns做的网站seo顾问服务福建
  • 室内设计网站集合seo经理招聘
  • 珠江摩尔网站建设沈阳网站建设
  • 关于推进政府网站集约化建设邵阳seo优化
  • 商业网站的特点企业网站营销实现方式
  • 浏览器地址栏怎么打开武汉seo搜索引擎
  • 网站建设亿金手指花总14上海外贸网站seo
  • 做网站项目主要技术网上商城推广13种方法
  • 上海建科建设监理网站国际新闻头条
  • 网站推荐入口最强大的搜索引擎
  • seo网站推广策略万网app下载
  • 湖北什么网站建设值得推荐网站设计与建设
  • 用网站做平台有哪些志鸿优化网下载
  • 要找人做公司网站应该怎么做百度关键词热度排名
  • 上海自主建站模板搜索引擎优化哪些方面
  • 沈阳网站制作服务站长之家的seo综合查询工具
  • 北京学网站开发网站源码交易平台
  • 网站开发的目的意义特色创新湖南专业seo推广
  • 网站建设公司销售求几个微信推广平台
  • 营销型网站建设排名浏览器大全网站
  • 自己做网站怎么挣钱餐饮管理培训课程
  • 那些网站企业可以免费展示百度明星人气榜入口