
算法入门
文章平均质量分 84
shixiexunnie
这个人很懒 没什么想说的
展开
-
【跟着灵神刷力扣】定长滑动窗口
檐角炊烟软暮光,云层裂隙漏斜阳。新茧裹着旧伤结,老门推开陈酒香;烛火飘摇明灭处,闷雷沉在青砖墙。蜻蜓点破春潭影,一池星碎待风狂。原创 2025-03-23 23:33:07 · 490 阅读 · 0 评论 -
【新手上路】牛客小白月赛111 ---部分题解
好博览而不守章句。原创 2025-03-12 18:54:39 · 180 阅读 · 0 评论 -
【新手上路】洛谷入门5:字符串题单题解
亦余心之所善兮,虽九死其犹未悔。原创 2025-03-12 18:49:43 · 721 阅读 · 0 评论 -
【新手上路】洛谷入门4:数组题单题解
莫道桑榆晚,为霞尚满天。原创 2025-02-28 16:35:39 · 849 阅读 · 0 评论 -
【原子工具】排序之sort(您没见过的全新视角)
如何在理想情况下的激进优化与最坏情况下的稳健防御之间取得平衡?这其实与你选择考研策略时的风险决策完全同构。根据数据特征动态切换三种算法,而这就是sort的决策内核。快速排序是冲刺阶段的创业团队(快速试错)堆排序是危机时期的审计部门(稳定兜底)插入排序是优化细节的品控小组(局部微调)这是sort函数的内省(Introsort),而在我们的学习生活中我们也应该不断内省(introspection)// 自定义比较函数(注意参数类型要与malloc分配的数组匹配)原创 2025-02-28 09:00:35 · 677 阅读 · 0 评论 -
【补阙拾遗】排序之冒泡、插入、选择排序
当索尔抡起雷霆之锤砸向无序的巨人骨骸,迸发的火花恰似冒泡排序在数据深渊中倔强翻涌的气泡——每一轮循环都带着阿斯加德工匠的憨直,明知要遍历九界却仍将最大值如米德加德之蛇般拖拽至末端。插入排序是芙蕾雅颈间的布里辛嘉曼,将每一颗新获的珍珠嵌入早已温热的链隙,纵使奥丁的乌鸦嘶喊着“O(n²)”,她依旧用指尖的寒霜在混沌中刺出优雅的裂隙,毕竟诸神黄昏前的小规模战阵,何需动用海姆达尔的O(n log n)号角?原创 2025-02-27 09:01:04 · 713 阅读 · 0 评论 -
【以无克有】排序之计数、基数与桶排序
前几次讲解的快排,归并和堆排序都是基于比较的的排序算法,他们的时间复杂度下限是O(nlogn),而今天要讲的则是基于分类的排序算法,它们的时间复杂度又有很大的不一样晨雾中的京都庭园,石灯笼上凝结的露珠悄然计数着时光的刻度,恰如计数排序在静默中丈量数据的频率;岚山竹溪载着红叶逐位漂流,若基数排序的流水将散落的数字引向归处;茶人分茶时,粗陶罐将春水分作九品,正如桶排序在粗砺中雕琢秩序。这些算法皆在诉说着分合之道——离散的樱花需经五重塔的层阶方能成雪,无序的字符要在浮世绘的套版间寻得本位。原创 2025-02-26 17:04:26 · 771 阅读 · 0 评论 -
【以无克有】排序之堆结构及堆排序
堆排序的每一次堆化与交换,皆是混沌与秩序的共舞,亦是算法与诗学的共振。它教会我们:真正的秩序绝非静止的完美,而是动态的平衡——正如叶子节点在沉浮中重构层级,最大值在陨落中让渡新生。拉丁文哲人卢克莱修在《物性论》中写道:“Ex nihilo nihil fit”(无中不能生有),而堆排序却以递归为笔,在虚无的数组中书写出严谨的层次,这恰似人类理性对无序世界的温柔驯服。若将人生视作一棵不断堆化的树,或许我们终将领悟:每一次“下沉”并非坠落,而是为了在更深的维度扎根;原创 2025-02-21 00:34:08 · 950 阅读 · 0 评论 -
【以无克有】排序之归并排序
归并排序的精髓,恰似人生分合之道的镜像——拆解时如三岛由纪夫笔下武士剖开混沌的决绝,重组时又似陶渊明"乐天知命"的圆融。每一次递归的裂变都是对混沌的宣战,每一轮归并的聚合皆是秩序的重生。这算法里暗藏着东方君子的进退哲学:拆解时要如《殷其雷》中"振振君子"般勇毅前行,融合时又需《归去来兮辞》"矫首遐观"的澄明境界。数据洪流中的分合往复,恰似文人墨客在入世济民与出世守真间的永恒跋涉,那些看似冰冷的比较与交换,实则是将混沌锻造成星辰的炼金术。原创 2025-02-18 16:00:36 · 505 阅读 · 0 评论 -
【以无克有】排序之随机快速排序
在这片由比特构筑的星空中,快速排序如同巴赫的赋格曲般精妙——混沌的数组在基准值的选择中逐渐显露出潜藏的秩序。分治哲学如同希腊神话中普罗克鲁斯忒斯的床榻,以递归为刻刀将庞杂数据重塑成可解的形态。那些看似无序的字节序列,实则是尚未完成自我梳理的德罗斯特效应画卷。程序员如同手持奥卡姆剃刀的炼金术士,在指针的华尔兹中领悟递归的复调之美。每个基准选择都是笛卡尔坐标系里的理性抉择,每次分区操作都像《神曲》中贝雅特丽齐引领但丁穿越九重天般层层递进。原创 2025-02-14 22:19:15 · 770 阅读 · 0 评论 -
【新手上路】洛谷入门3:循环结构题单题解
西风烈,长空雁叫霜晨月。霜晨月,马蹄声碎,喇叭声咽。原创 2025-02-10 13:50:19 · 920 阅读 · 0 评论 -
【新手上路】洛谷入门2:分支结构题单题解
归来笑拈梅花嗅,春在枝头已十分。原创 2025-02-05 23:59:14 · 844 阅读 · 0 评论 -
【新手上路】洛谷入门1:顺序结构题单题解
偶然乘兴,步过东冈。正莺儿啼,燕儿舞,蝶儿忙。原创 2025-02-04 19:25:14 · 528 阅读 · 0 评论 -
【新手上路】洛谷算法1-1:模拟与高精度(高精度部分)
在二进制流转的娑婆世界里,算法犹如渡河之筏。当世人畏惧大数运算的浩瀚相,常生退转之心,却不知三千烦恼本是三千菩提。高精度算法看似要直面数位如恒河沙的困局,实则是破除法相执着的修行法门。编程者当学须菩提解空第一的智慧。进位借位间流转的,何尝不是缘起性空的示现?每一个字符的迭代正如禅门公案中的机锋,乘法竖式里藏着华严十玄门的重重无尽。初习者莫畏数位浩瀚,须知十方虚空尚在吾人本性中,况此五百位乎?那些看似枯燥的循环嵌套,恰似达摩面壁的九年功夫。当乘方运算在快速幂中层层开显,方知"一即一切,一切即一"的妙谛。原创 2025-02-04 03:48:04 · 1071 阅读 · 0 评论 -
【旁门左道】cin解绑定/缓冲输出
编程语言是冰冷的符号,工具的效率却流淌着使用者的温度。当人们断言“cin 必然低效”时,本质是将默认配置的镣铐误认为工具本身的缺陷——这恰如困在透明玻璃瓶中的飞虫,反复撞击虚构的边界,却对头顶敞开的瓶口视而不见。每一个看似笨拙的 cin,都蛰伏着未被唤醒的潜力;每一行沉默的代码,都藏着突破认知框架的密钥。技术的精进从不是对工具的盲从,而是对“理所当然”的持续诘问。当你解开同步锁链、斩断冗余绑定时,也是在破除思维定式的藩篱——那些曾被视作金科玉律的“性能劣势”,不过是未擦拭干净的镜面倒影。原创 2025-02-04 01:24:25 · 530 阅读 · 0 评论 -
【原子工具】快速幂 & 快速乘
阴阳二进制的火花在递归中迭变,模数宇宙的涟漪于位运算里震荡。代码中的每一个移位都是对混沌的降维打击,递归栈底的return 1如同宇宙大爆炸的奇点,从虚无中诞生万千可能。新手当知:算法修炼是铸剑过程,递归与迭代是阴阳双刃,调试时的报错声恰是淬火的嘶鸣。无论指数如何膨胀,终将拆解为二进制的星辰;纵使乘数浩如烟海,亦可化作位运算的细沙。记住,你写的不是代码,而是将混沌世界重构成数学之美的炼金术。原创 2025-02-03 08:38:37 · 727 阅读 · 0 评论 -
【以无克有】高精度算法模板
去年下半年开始写模拟题,始终觉得进步是难的,后来朋友一番话点醒:“模拟终归是经验之谈,你既无算法逻辑,又无模板工具,做完大把模拟题也不过是增加语法知识”原创 2025-01-29 20:29:55 · 158 阅读 · 0 评论 -
【新手上路】牛客-循环结构程序设计题解
中心规律:对于2的整数项对应的数就是k的n次项,譬如样例:2的0次项1的数是3的0次项,2的1次项的数是3的1次项…然后宁就会疑虑是否有偶然性:于是咱们验证k=4(1,4,5,16,17,20,21,64…)或k=5(1,5,6,25,26,30,31,125…久有凌云志,重上井冈山。千里来寻故地,旧貌变新颜。到处莺歌燕舞,更有潺潺流水,高路入云端。五十五题的题解实在是懒于总结:既以王座的水调歌头·重上井冈山开头就以其结尾。一万年太久,只争朝夕。乍一看去,似乎棘手,可是咂摸咂摸味道,诶!原创 2024-12-09 23:06:19 · 1063 阅读 · 0 评论 -
【拾遗补阙】更相减损术&&辗转相除法(gcd)
原理推导算法步骤代码实现(以C++为例)原创 2024-12-09 23:00:19 · 869 阅读 · 0 评论 -
【拾遗补阙】素数筛法---试除法、埃氏筛、欧拉筛(线性筛)
偶遇一题,以拾遗补艺,成一家之言牛客-题目描述Nancy喜欢博弈!Johnson和Nancy得到了一个神奇的多重集合,仅包含一个正整数n,两个人轮流进行操作。一次操作可以将集合中一个数字分解为它的任意两个非1的因数,并加入集合中。他们想知道,在Johnson和Nancy绝顶聪明的情况下,如果Nancy先手进行操作,最后谁没有办法继续操作了呢?输入描述:第一行:一个整数n。数据满足 :1≤n≤95718。原创 2024-12-09 19:19:31 · 885 阅读 · 0 评论 -
【拾遗补阙】进制转换
与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的值-1为指数,以2为底数的幂之和的形式。如果是以R或-R为基数,则需要用到的数码为 0,1,....R-1。例如,当R=7时,所需用到的数码是0,1,2,3,4,5和6,这与其是R或-R无关。例如对16进制数来说,用A表示10,用B表示11,用C表示12,用D表示13,用E表示14,用F表示15。设计一个程序,读入一个十进制数和一个负进制数的基数, 并将此十进制数转换为此负进制下的数:-R∈{-2,-3,-4,...,-20}原创 2024-12-09 18:42:21 · 994 阅读 · 0 评论 -
【新手上路】牛客-选择结构程序设计题解
牛客选择结构题单个人题解加之算法学习原创 2024-11-26 14:54:42 · 757 阅读 · 0 评论 -
打印金字塔总结(c/c++)
基础题的盘点总结,秉承节流(时间)的精神也就为类己的萌新规范化此类题目,亦当作后续牛客算法题解之预热原创 2024-11-20 23:28:37 · 1135 阅读 · 0 评论 -
【新手上路】牛客-顺序结构程序设计题解
顺序结构程序设计原创 2024-11-11 19:31:53 · 818 阅读 · 0 评论