算法
文章平均质量分 87
Transcend oneself
在读信息管理与信息系统专业,几个月前开始对编程有了很大的兴趣,来到这里和大家一起共享知识,一起进步!
展开
-
C语言数据结构+KMP算法next数组优化计算方法+优化后子串匹配代码实现
本篇文章主要讲解的是如何进行KMP算法中的next数组的计算,以及对next数组进行优化从而实现高效匹配字符串的子串原创 2023-04-22 09:19:33 · 1077 阅读 · 25 评论 -
C语言数据结构-队列的知识总结归纳
队列是一种先进先出(FIFO)的数据结构,它的主要操作包括入队(enqueue)和出队(dequeue)。队列通常用于存储需要按顺序处理的元素,例如打印机任务、消息队列等。队列可以通过数组或链表实现。使用数组实现的队列通常需要考虑队列满的情况,可以用循环队列解决。使用链表实现的队列则不需要考虑队列满的情况,但需要注意空队列的情况。原创 2023-04-18 13:18:11 · 1051 阅读 · 55 评论 -
C语言数据结构-栈的知识归纳以及栈的应用
栈是一种常见的数据结构,它的特点是先进后出(Last In First Out,LIFO),类似于我们平时用的一个栈子,一次只能放一个物品,后放的物品会覆盖之前放的物品。在计算机中,栈是一种非常重要的数据结构,用来实现函数调用、表达式求值等功能。原创 2023-04-15 17:43:59 · 367 阅读 · 21 评论 -
C语言-数据结构与算法-详细全面的链表知识总结归纳
在我们学习过顺序存储结构之后,我们会发现顺序存储结构往往会有一个内存空间有限或者内存分配过多的情况以及我们需要频繁进行插入删除操作的时候,会发现使用顺序表会很麻烦,但是,本篇文章将会教你如何使用链式存储结构,使得我们的效率提升.原创 2023-04-12 19:29:26 · 1505 阅读 · 48 评论 -
python实现+leetcode题+合并两个有序列表超详细流程图分析以及代码思路
首先需要创建一个新的列表来存储遍历排序的结果,定义两个指针p1和p2用来控制列表的遍历,而那个while循环的条件就是为了让两个元素个数不同的列表能够都遍历完所有元素,如果list1或者list2其中一个列表元素已被遍历排序完,而另一个列表还存有元素,那么就可以把另一个列表剩下的元素直接追加到我们的sorted存放最终结果的列表中去,最后因为它需要把合并后的结果放到nums1中,所以我们这里直接使用列表的切片方式对nums1从头到尾进行切片,相当于将sorted深拷贝给nums1。合并结果是[1]。原创 2023-04-05 09:45:18 · 804 阅读 · 24 评论 -
C语言数据结构+快速排序+快速排序实现流程+快速排序代码实现
通过在数组中找一个基准值(默认情况下初始我们都是以数组第一个元素为基准值)对数组进行分划,首先定义两个指针,一个left,一个right,分别是指向数组的第一个和最后一个元素使用基准值从right往前依次比较,直到找到第一个小于基准值的数,把它放到基准值所在位置,然后再用基准值对数组从left往右依次比较直到找到第一个大于基准值的元素,然后把这个元素放到right的位置,最后把基准值放到放到前面left所指向的位置.在这个的基础上利用递归的方式实现这个完整的快速排序原创 2023-03-28 00:01:57 · 648 阅读 · 18 评论 -
C语言数据结构+冒泡排序的实现
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数组,比较每对相邻的元素,并按照顺序交换它们的位置,直到没有任何一对元素需要交换为止。冒泡排序的时间复杂度为O(n^2),其中n为要排序的元素个数。虽然冒泡排序的效率不是很高,但是它的实现简单易懂,适合排序元素个数较少的数组,适用场景与我上期的希尔排序恰恰相反,如果对希尔排序有疑问,请看我上期希尔排序.原创 2023-03-27 09:00:00 · 1374 阅读 · 24 评论 -
C语言(数据结构)+希尔排序的实现,详细流程讲解+代码实现+适用场景
希尔排序是直接插入排序的一种优化,可以用于数据量比较大的数组排序,,从上面的时间复杂度可以分析得出,越是大的数组,越能体现出希尔排序的高效原创 2023-03-26 00:07:45 · 1258 阅读 · 25 评论 -
C语言数据结构+超详细+插入排序+带哨兵和不带哨兵以及优化的折半插入排序
插入排序是一种简单但有效的排序算法,其基本思想是将待排序的元素逐个插入到已排序序列中的合适位置。具体实现时,可以采用循环嵌套的方式,外层循环遍历待排序序列,内层循环从后往前遍历已排序序列,找到插入位置并将元素插入。插入排序的时间复杂度为 O(n^2),空间复杂度为 O(1)。虽然时间复杂度比较高,但对于小规模数据和部分有序的数据,插入排序表现良好。另外,插入排序是稳定排序,不会改变相等元素的相对顺序。在实际应用中,为了提高插入排序的效率,可以采用优化策略,如二分查找插入位置、使用哨兵减少判断次数等。原创 2023-03-24 00:05:39 · 1595 阅读 · 26 评论 -
KMP算法(快速手算求模式串的next),超详细KMP的子串匹配流程并用伪代码实现KMP算法
KMP算法是一种字符串匹配算法,用于在一个文本串中查找一个模式串的出现位置。它通过预处理模式串,利用已知信息来避免在文本串中不必要的回溯,从而提高匹配效率。具体来说,KMP算法使用一个部分匹配表(即next数组)来记录模式串中每个前缀子串的最长公共前后缀长度,然后根据这个表进行匹配。时间复杂度为O(m+n),其中m和n分别为模式串和文本串的长度。原创 2023-03-22 22:44:22 · 2255 阅读 · 12 评论 -
python算法_02字符串(罗马类型的转换整数)
通过python实现将罗马字符串转换成整数原创 2022-11-22 22:56:52 · 291 阅读 · 1 评论 -
python算法-01数组
主要利用我们数组的算法去解决一个盛水最大的面积的问题,利用到了我们的一个木桶效应原创 2022-11-22 00:01:40 · 314 阅读 · 0 评论