最新要闻
- 国内外多名大胃王意外死亡 有人胖到320斤有人开播前突然昏迷:专家科普
- 环球微头条丨男子整形后称没法靠颜值吃饭了:丢了工作
- 《暗黑4》公测性能实测:RTX 4090显卡流畅跑8K
- 世界要闻:李彦宏谈文心一言:市场反馈符合预期 股价波动没必要解释
- 焦点滚动:挺能藏啊!男子电动滑板车藏84个SSD入境被海关查获
- 天天微头条丨卡佩罗:那不勒斯和国米将晋级 迈尼昂和奥纳纳是米兰双雄的关键
- 每日观点:曹姓明星收20万带货3月成交278元 被判退还13.9万:要量力而行
- 13代酷睿躺赢了 4nm锐龙7000跳票:此前规格被砍2刀
- 环球观热点:《流浪地球2》门框机器人科幻十足 设计师详解:还能晾衣服能甩干
- 东北首条海下/跨海地铁!大连地铁5号线正式运营
- 动态焦点:暴雪:《暗黑》系列能成功多亏了韩国玩家热情和爱戴
- 全球观点:朱雀二号遥一运载火箭发射失利:已查明飞行故障 通过归零评审
- 全球热头条丨《雷霆沙赞2》豆瓣开分6.5:加朵女神加分、剧情被批幼稚低级
- 张兰被曝国外欠债9.8亿,海外家庭信托被追债,拼命带货疑为还债
- 肯德基全家桶被曝吃出生的炸鸡!店家回应是锅出现故障
- 世界观速讯丨8万元会成爆款吗?宝骏悦也实车曝光:像吉姆尼、能跑303公里
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
希尔排序、快速排序、KMP算法
希尔排序
背景
- 对N个样本进行排序,顺序为从小至大
步骤
(相关资料图)
- 第一步:对样本不断确定分组的间隔gap,确定分组次数X -》对应第一个循环
- 第一次gap = N/2;第二次gap = gap/2;直至分成一组,即gap=1;
- 第二步:从头开始遍历这X个组 -》对应第二个循环
- 实际遍历的时候从gap开始依次遍历即可
- 第三步:对第一步分组的内部M个元素进行排序
- 从组内的第二个元素开始,与前面元素进行对比插入;直至从组内第M个开始;
- 第一步:对样本不断确定分组的间隔gap,确定分组次数X -》对应第一个循环
代码
int shell_sort(vector
data){ int gap = 0;//分组的跨度 int i = 0, j = 0; for(gap = data.size()/2; gap >= 1; gap /= 2){// 分组的次数 for(i = gap; i < data.size(); i++){// 每组遍历 int tmp = data[i]; for(j = i-gap; j >= 0 && tmp < data[j]; j = j - gap){//组内排序 // 组内tmp和之前的组内元素进行对比,比该元素大的元素向后偏移1位; //直到找到比tmp小的第一位元素x,将tmp赋值给x的下一位 data[j+gap] = data[j]; } data[j+gap] = tmp; } } return 0;}
快速排序
背景
- 对N个样本进行排序,顺序为从小至大
步骤
- 第一步:选取哨兵(参考值),并保存哨兵 -》一般为当前集合的第一个元素
- 第二步:为哨兵找到合适的位置 -》前面部分比哨兵大,后面部分比哨兵小
- 从前到后,找第一个比哨兵大的数,赋值给哨兵的位置,此时值为x
- 从后到前,找第一个比x小的数,赋值给哨兵的位置
- 重复第一步第二步,直到i和j相遇,此时的位置刚好把哨兵的值夹在中间
- 第三步:对分完之后子集合重复上述操作---》递归左右子集
代码
int sort(vector
& v, int left, int right){ if(left >= right) return 0; int i = left; int j = right; int key = data[left]; while (i < j){//保证i一定会与j相遇 while(i < j && key < data[j]){//避免内部循环的时候i越过j j --; } data[i] = data[j]; while(i < j && key >= data[i]){//避免内部循环的时候i越过j i ++; } data[j] = data[i]; }//结束循环时i == j data[i] = key;//找到了对应的中间位置,属于哨兵的位置 sort(data, left, i-1); sort(right, i+1, right); return 0;}int quick_sort(vector & data){ sort(data, 0, data.size() - 1); return 0;}
KMP算法
背景
快速查找文本中相同字符串 -》利用匹配字符串pattern对文本字符串text进行搜索匹配
前提说明
ab 前缀:a 后缀:b 最长相等前后缀:0--》xabc 前缀:a,ab 后缀:b,bc 最长相等前后缀:0--》xabca 前缀:a,ab,abc 后缀:a,bc,bca 最长相等前后缀:1--》aabcab 前缀:a.ab.abc.abca 后缀:b,ab,cab,bcab 最长相等前后缀:2--》ababcabc 前缀:a,ab,abc,abca,abcab 后缀:c,bc,abc,cabc,bcabc 最长相等前后缀:3--》abc
- 前缀和后缀
- 前缀:不包含最后一个字符的前面的所有集合
- 后缀:不包含第一个字符的后面的所有集合
- 最长相等前后缀
- 前缀和后缀中存在相等最大长度的字符串
- next数组 -》也被称为前缀表
- pattern中字符的滑动窗口从第一个字符不断后移,每一个窗口下的最长相等前后缀的集合
- 例:上述next数组为next[6] = {0, 0, 0, 1, 2, 3}; -》字符有n个,数组大小为n
- 前缀和后缀
步骤
- 第一步:求出next数组
- 第二步:利用next数组进行匹配字符串
代码
void make_next(const char * pattern, int * next){//得到next数组-》前缀表 int q = 0, k = 0; int m = strlen(pattern); next[0] = 0;//默认第一个字符的最长相等前后缀为0 for(k = 0, q = 1; q < m; q ++){// 下文有k的含义,k遍历前面部分,q遍历后面部分 // 不匹配进行回退,不止会回退一次 while( k > 0 && pattern[q] != pattern[k]){ k = next[k-1]; }//最差情况k == 0 if(pattern[q] == pattern[k]){ k ++; } next[q] = k; }}int kmp (const char * text, const char * pattern, int * next){ int n = strlen(text);// 文本字符串长度 int m = strlen(pattern);// 匹配字符串长度 make_next(pattern, next);// 得到next数组 int i, q; for(i = 0, q = 0; i < n; i ++){ // 不匹配进行回退,不止会回退一次 while( q > = && pattern[q] != pattern[i]){ q = next[q-1];// 对next数组的指针进行回退 } if(pattern[q] == text[i]){ q ++; } if(q == m){ return i-q+1;// 得到匹配字符串的初始位置 } return -1; }}
图示
- 求出next数组
- 匹配字符串
额外说明
求next数组的过程可以看作利用以求出的next数组,进行前面字符和后边字符的匹配
k = next[k-1] / q = next[q-1];
- 这两个位置都是利用next数组进行回退
- 因为一旦遇到不匹配的字符,对于pattern中该字符前面的字符串,后缀已经匹配相等的部分直接使用前缀相等的部分代替,从而减少匹配次数
由于kmp中text字符串的指针一直处于线性遍历,因此时间复杂度相比于暴力遍历的时间复杂度有大部分降低
- 暴力遍历的时间复杂度为O(m*n); -》m为text字符串长度,n为pattern字符串长度
- kmp的时间复杂度为O(m); -》m为text字符串长度
k的含义:
- 代表前面字符指向的位置
- 已经前后缀匹配成功的个数
关键词:
-
环球热推荐:008爬虫之短短20行代码下载周杰伦所有歌曲
今天废话不多说直接上代码。下载周杰伦所有歌曲。 下载周杰伦歌曲importrequestsimportreforiinrange(36):url=f"http:
来源: 希尔排序、快速排序、KMP算法
环球热推荐:008爬虫之短短20行代码下载周杰伦所有歌曲
一次 Hyperf 注解失效问题分析
全球看热讯:Qt+百度AI文字识别OCR小工具
国内外多名大胃王意外死亡 有人胖到320斤有人开播前突然昏迷:专家科普
热点在线丨2023省选16天
著名的Breach黑客论坛管理员被捕
环球微头条丨男子整形后称没法靠颜值吃饭了:丢了工作
《暗黑4》公测性能实测:RTX 4090显卡流畅跑8K
世界短讯!SSL/TLS协议运行机制的概述
最新资讯:重学c#系列—— explicit、implicit与operator[三十四]
世界要闻:李彦宏谈文心一言:市场反馈符合预期 股价波动没必要解释
焦点滚动:挺能藏啊!男子电动滑板车藏84个SSD入境被海关查获
【天天快播报】webpack原理(2):ES6 module在Webpack中如何Tree-shaking构建
CTF show 信息收集篇
Quicker 快速开发,控制脚本关闭(示例,鼠标连点器)
天天微头条丨卡佩罗:那不勒斯和国米将晋级 迈尼昂和奥纳纳是米兰双雄的关键
每日观点:曹姓明星收20万带货3月成交278元 被判退还13.9万:要量力而行
13代酷睿躺赢了 4nm锐龙7000跳票:此前规格被砍2刀
已知球面经纬度求方位角和反方位角(awk一行代码实现)
环球观热点:《流浪地球2》门框机器人科幻十足 设计师详解:还能晾衣服能甩干
东北首条海下/跨海地铁!大连地铁5号线正式运营
世界热讯:Linux学习笔记
报道:插件化架构设计(2):插件化从设计到实践该考量的问题汇总
【天天新要闻】Vins 前端中高效的去畸变的方式解析
动态焦点:暴雪:《暗黑》系列能成功多亏了韩国玩家热情和爱戴
全球观点:朱雀二号遥一运载火箭发射失利:已查明飞行故障 通过归零评审
全球热头条丨《雷霆沙赞2》豆瓣开分6.5:加朵女神加分、剧情被批幼稚低级
【全球独家】万字血书Vue—Vue的核心概念
张兰被曝国外欠债9.8亿,海外家庭信托被追债,拼命带货疑为还债
Ocelot使用与设置路由Routing
环球速递!arthas排查线上问题真是太好用了!
肯德基全家桶被曝吃出生的炸鸡!店家回应是锅出现故障
世界快播:C++ class struct
环球视点!Windows OpenGL ES 图像 GPUImageLookupFilter
世界观速讯丨8万元会成爆款吗?宝骏悦也实车曝光:像吉姆尼、能跑303公里
每日热文:印度男子因新娘高三成绩不好要求退婚 还要退5千彩礼:网友看笑
世界观焦点:CSS学习笔记
热门看点:女生被拍同学勇敢对峙让男子删除 想保护好自己的朋友:网友称赞勇敢
1.5mm!iPhone 15 Pro Max将打破最薄边框纪录:CAD外观渲染图曝光 更帅了
全球微头条丨没有科技与狠活 :依能天然苏打水2.3元发车 无糖无气0卡
03月18日09时福建漳州疫情数据 阳了以后为什么会腰疼?应该怎么办?
当前要闻:为什么文件删除了但磁盘空间没有释放?
微博图床被废,自己动手丰衣足食。
【聚看点】Source Generator初探
4、AOP
天天亮点!汽车降价潮蔓延!成都豪撒1亿购车补贴 汽车流通协会称武汉汽车降价不公平
【天天热闻】俞敏洪称下辈子宁愿当没钱的流浪汉:自己周围的企业家都在没日没夜的干活
比亚迪出海再下一城!乌兹比克斯坦三车齐发:宋PLUS 22万起售
世界聚焦:调查显示民众预期英国央行将继续加息
【全球速看料】差距有多大?一图看懂蔚来、小鹏、理想汽车2022年第四季度财报:老大变了
每日速读!水晶球档杆绝无仅有!韩系豪华电动车捷尼赛思GV60上市:28.58万起
世界速讯:你对Linux窗口管理程序Tmux了解吗
【全球聚看点】还买什么汉兰达!全新大七座SUV福特锐界L开售:22.98万历史新低
【世界速看料】超市6500元招聘引学生排队投简历 负责人:已收到五十多份
世界看点:南宁市2023年事业单位统一考试简章发布 337个岗位共招1764人
【当前独家】读Java性能权威指南(第2版)笔记20_垃圾回收G
何小鹏:王凤英一周工作七天、让大家很卷
何小鹏谈竞争对手降价:油车一定会反击、小鹏将降低25%生产成本
springboot跨域问题解决方案
天天亮点!听闻索尼PS5 Pro主机明年发售后:老玩家们集体不干了
环球通讯!日本女大胃王菅原初代患肠癌病逝:曾10分钟吞399碗荞麦面
全球热点评!美国一核电站承认150万升核污染水泄漏:已隐瞒数月
导演郭帆都看不下去!众筹1亿的《流浪地球2》周边 为啥要偷工减料?
说句话就能做表格、PPT!微软把GPT-4塞进办公套件 我慌了
每日热门:喉结左侧有个硬疙瘩_左侧睾丸里有个小疙瘩是什么
AIGC的下一站是什么?
速读:vue2前端导出带背景色表格 xlsx xlsx-style
环球新资讯:Attention与SelfAttention
五角大楼官员表示:太阳系中可能存在外星母舰探测地球
环球消息!每日机构分析:3月17日
fiddler:The system proxy was changed.Click to reenable capturing
iPhone 15 Pro Max屏幕边框窄爆:将打破小米13纪录
99元 联想YOGA新款M5无线鼠标上架:鹅卵石设计
张裕葡小萄赤霞珠甜红葡萄酒2支到手39.9元:酒香浓郁
世界热讯:手机百度文库的下载券怎么用啊 为什么(百度文库不能用下载券)
网红店半天妖烤鱼被曝垃圾桶捞回食材上桌!合肥市监局:全市门店停业
天天微头条丨赛博2077支持DLSS3 iGame RTX 40显卡实战:性能2倍提升
河南三月飞雪 突降大雪竟与人工增雨有关
中金所就30年期国债期货合约征求意见
世界观速讯丨铭瑄发布旗舰级MGG RTX 4080、4070 Ti:丧心病狂5风扇、9热管
【焦点热闻】AMD份额涨不动了 专家称Intel的麻烦已结束:CPU竞争力更强
每日视点!山东一公司疑设卑劣人员从业跟踪岗:你去哪我就发函到哪
微头条丨铲屎官注意!研究表明养宠物或影响睡眠
热点评!你买过大船货吗?男子电动滑板车藏84个SSD入境被海关查获
全球新消息丨如何在Docker下部署nacos并注册Java服务
每日讯息!记录--vue中封装一个右键菜单组件(复制粘贴即可使用)
【新要闻】一汽奔腾销量惨淡,靠预售23.58万起的奔腾M9有望逆转吗?
天天快资讯:车主注意:新一轮国内油价降了!加满一箱油将少花4元
焦点要闻:全球最大集装箱船将在宁波舟山港开启首航:比航母还长
今日热讯:接二连三胜!长三乙火箭成功发射高分十三号02星
环球快资讯:《三体》动画播放量破5亿!豆瓣评分暴跌至3.9 差评率高达86%
票房已突破45亿!《满江红》宣布密钥再次延期
全球热门:“315”曝光:带货直播间水军泛滥,该如何应对?
天天观速讯丨债市日报:3月17日
消防车被小车挡道 业主联系未果合力掀翻!车主不干了
滚动:让越野车无路可走!极氪001成功挑战原路虎越野基地
世界热门:座椅加热1299元!smart回应硬件订阅:预埋硬件算送的 成本没进卖车价
环球快播:何炅再提《快乐大本营》:引发网友感慨
全球实时:1个案例读懂——游戏产品如何用 A/B 测试做增长