算法
文章平均质量分 85
游坦之
凡物之骤为之而追成焉者,其器小也;物之一览而易尽者,其中无有也。
展开
-
经典算法之索引查找
索引查找是在索引表和主表进行的查找,存储结构是线性表。索引查找是将表分成几块,并且块内无序,块间有序;先确定待查记录所在的块,再在块内查找。原创 2022-08-18 23:32:04 · 236 阅读 · 0 评论 -
经典算法之希尔排序
希尔排序是插入排序的一种又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止。简单的说,是先设置好一个长度(一般是元素长度的一半),然后将其划分为一组,先对这一组进行排序。然后缩小范围(一般是长度/2),在分组排序,直到长度变为1。...原创 2022-08-17 11:03:00 · 155 阅读 · 1 评论 -
经典算法快速排序
快速排序是对冒泡排序的一种改进。原创 2022-08-16 17:33:49 · 204 阅读 · 0 评论 -
经典算法之冒泡排序
✌ 作者简介:游坦之 ✌🏆 大学软件工程在读,希望学到真本领,经世致用 🏆📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀💬 人生格言:丑且益坚,病当益壮💬。......原创 2022-08-12 22:14:30 · 168 阅读 · 0 评论 -
经典算法之并查集
✌ 作者简介:游坦之 ✌🏆 大学软件工程在读,希望学到真本领,经世致用 🏆📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀💬 人生格言:穷且益坚,老当益壮💬。......原创 2022-08-10 17:36:01 · 432 阅读 · 1 评论 -
经典算法之折半插入排序
折半插入排序是对插入排序算法的一种改进。所谓插入排序,就是不断的依次将元素插入前面已排好序的序列中。说白了,就是将一个集合,分为有序区和无序区,前区是有序区,后区是还没有处理的集合数据,前区的范围从0到n,后区的范围从n到0,其中n是集合中元素的数量。...原创 2022-08-10 16:29:51 · 954 阅读 · 0 评论 -
【C++】选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。...原创 2022-08-05 19:06:59 · 5922 阅读 · 10 评论 -
直接插入排序算法,看这篇就够了
直接插入排序(Straight Insertion Sort)是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。 由上面的栗子可以清晰的看出,直接插入排序需要两个容器,一是承载所有的集合,而是承载逐步扩充的有序集合。有序集合本是空集,随着每一步的扩充,集合的元素总数加1.也就是原集合有多少个元素,就需要进行多少步,即原有n个元素,就要进行n步排序。而每一步排序,最坏情况都需要遍历m次,这就意味着直接插入排序的时间复杂度即为O(n2)。......原创 2022-08-03 14:19:49 · 536 阅读 · 4 评论 -
顺序查找和折半查找,看这篇就够了
✌作者简介游坦之✌🏆大学软件工程在读,希望学到真本领,经世致用🏆📫如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀💬人生格言成好人,行好事,做儒猿💬🔥如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦。...原创 2022-08-01 13:57:55 · 2547 阅读 · 8 评论 -
2017届蓝桥杯B组省赛《承压计算》
数据 7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 8 8 4 1 7 9 6 1 4 5 4 5 6 5 5 6 9 5 6 5 5 4 7 9 3 5 5 1 7 5 7 9 7 4 7 3 3 1 4 6 4 5 5 8 8 3 2 4 3 1 1 3 3 1 6 6 5 5 4 4 2 9 9 9 2 1 9 1 9 2 9 5 7 9 4 3 3 7 7 9 3 6 1 3 8 8 3 7 3 6 8 1 5 3 9 5 8 3 8 1 ...原创 2022-03-01 09:03:42 · 436 阅读 · 0 评论 -
字符串Hash【自用】
字符串哈希求最长回文长度,首先是利用hash公式建hash表,然后以第一个字符到最后一个字符依次作为中心,判断左右hash值是否相等,根据结果,利用二分来进行相应的增缩。 优化:1、将偶数字符串和奇数字符串通过增加没有用过的字符,使之都转化为奇数字符串处理。 2、二分的时候,r的值一定不能是n(过不了),而且不要再for循环里用strlen(n);不知道为啥,反正我就因为这一点,超时了。r的值应该是(n-i)和i-1的小值.因为要让两...原创 2021-11-27 21:48:16 · 324 阅读 · 0 评论