算法
文章平均质量分 88
小葫芦写代码
c>c++>java,嵌入式开发,多媒体开发(ffmpeg/gstreamer)、android开发
展开
-
内排序:冒泡排序、简单选择排序、直接插入排序、希尔排序、堆排序、快速排序介绍及C语言实现
排序(参考大话数据结构第9章,归并排序没有看,快速排序的优化部分没有看)相关概念:1.内排序与外排序:根据在排序过程中待排序的记录是否全部被放置在内存中分为内排序和外排序。本文讨论的7种排序算法都是内排序。2.稳定性:能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。即:如,如果Ai==Aj,Ai原来在Aj位置前,排序后Ai仍然是在Aj位置前冒泡排序:bubbleSort0:最基础版冒泡排序:j从前往后循环,j每循环一次只是将剩下数据中的.原创 2021-05-04 21:08:10 · 839 阅读 · 0 评论 -
哈希相关及C语言实现
散列(哈希): 是在记录的存储位置和它的关键字之间建立一个确定的映射关系f,使得每个关键字key对应一个存储位置(参考大话数据结构8.9-8.12)。 存储位置=f(key)f称为散列函数,又称为哈希函数。采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表。 哈希是用来解决查找与给定值相等的位置。 设计一个简单、均匀、存储利用率高的散列函数是散列技术中最关键的问题。 散列冲突:两个key1 != key2,但是f(key1) =...原创 2021-05-02 19:50:59 · 835 阅读 · 0 评论 -
KMP匹配
KMP匹配:定义:KMP是一种改进的字符串匹配算法,其关键是利用匹配失败后的信息,尽量减少模式串和主串的匹配次数以达到快速匹配的目的。1.KMP做到主串的位置指针i不回退,不像朴素匹配那样在发生不匹配时需要回退主串的位置指针,仅移动模式串的位置指针即可完成匹配。相关概念:前缀:不包含最后一个字符的所有以第一个字符开头的连续子串(从左向右扫描),比如字符串abaca,其前缀有:a,ab,aba,abac后缀:不包含第一个字符的的所有以最后一个字符结尾的连续子串(从左到右扫描),比如字符串abac原创 2021-04-02 21:28:02 · 211 阅读 · 1 评论