Loading

随笔分类 -  Data Structure

摘要:直接插入排序 定义:直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增 1 的有序表。 算法的代码: #include <stdio.h> #include <stdlib.h> void print_series(const int s 阅读全文
posted @ 2023-08-29 14:47 eiSouthBoy 阅读(80) 评论(0) 推荐(0)
摘要:## 冒泡排序 **冒泡排序的定义**:冒泡排序(Bubble Sort)是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,从而使关键字小的记录如气泡一般逐渐往上 “漂浮”(左移), 或者说使关键字大的记录如石块一样逐渐向下 “坠落”(右移)。 **冒泡排序的代码 阅读全文
posted @ 2023-08-25 16:43 eiSouthBoy 阅读(53) 评论(0) 推荐(0)
摘要:一、问题引入 **BF(Brute-Force)算法**介绍了BF算法的具体实现,但并未结合具体案例。 本随笔就是结合案例(病毒感染检测)对BF算法进行结合分析。 案例4.1: 病毒感染检测 医学研究者最近发现了某些新病毒, 通过对这些病毒的分析, 得知它们的 DNA 序列都是环状的。现在研究者巳收 阅读全文
posted @ 2023-04-07 11:16 eiSouthBoy 阅读(1110) 评论(0) 推荐(0)
摘要:一、问题引入 BF算法的平均时间复杂度过高,提出了一种新的匹配算法 KMP算法。 主串S的位置i 一直往下移动,不再回溯。但字串T的位置j 需要根据算法确定下来。 二、解决过程 函数:get_next() void get_next(const char *T, int **next) { int 阅读全文
posted @ 2023-04-06 14:54 eiSouthBoy 阅读(40) 评论(0) 推荐(0)
摘要:一、问题引入 模式匹配算法是对两个字符串进行比较匹配的算法。 在两个串中字符逐个匹配,若完全匹配,则返回位置,否则返回-1。 二、解决过程 2-1 函数:index_bf() int index_bf(char *S, char *T, int pos) { int S_len = strlen(S 阅读全文
posted @ 2023-04-04 09:44 eiSouthBoy 阅读(65) 评论(0) 推荐(0)
摘要:一、问题引入 图书信息管理系统: 出版社有一些图书数据保存在一个文本文件book.txt 中,为简单起见,在此假设每种图书只包括三部分信息:ISBN (书号)、书名和价格,文件中的部分数据如图2.1 所示。现要求实现一个图书信息管理系统,包括以下6个具体功能。 (1) 查找:根据指定的ISBN 或书 阅读全文
posted @ 2023-04-03 11:18 eiSouthBoy 阅读(303) 评论(0) 推荐(0)
摘要:一、问题引入 单链表的实现【01】:Student-Management-System 只体现了项目功能实现,未对代码部分做出说明。 故新增随笔进行补充说明代码部分。 重构代码,迭代版本:Student Mangement System(Version 2.0) 二、解决过程 基于单链表实现就离不开 阅读全文
posted @ 2023-03-30 16:45 eiSouthBoy 阅读(70) 评论(0) 推荐(0)
摘要:一、问题引入 舞伴配对问题: 假设在周末舞会上, 男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一算法模拟上述舞伴配对问题 先入队的男士或女士应先出队配成舞伴, 因此该问题具有典型的先 阅读全文
posted @ 2023-03-29 11:22 eiSouthBoy 阅读(1309) 评论(2) 推荐(1)
摘要:一、问题引入 递归函数的实现与栈结构的关系,将公式以代码的方式体现出来。 最好的例子莫过于:阶乘 分别求:1~n 的阶乘 1!=1 2!=1*2 3!=1*2*3 4!=1*2*3*4 数学公式: 二、解决过程 递归函数就是不断的调用自身,但递归函数必须预留出口,否则陷于死循环。 代码部分 #inc 阅读全文
posted @ 2023-03-27 14:31 eiSouthBoy 阅读(243) 评论(0) 推荐(0)
摘要:一、问题引入 在学习栈的过程中,教材有一个案例:利用栈结构解析括号的匹配问题。括号问题:[({}{})],说明 [] 、() 、{} 称为一对且满足就近匹配。 号码位置对应的括号之间进行匹配,结果:0-7、 1-6、 2-3、 4-5 源码链接https://github.com/caojun97/ 阅读全文
posted @ 2023-03-23 17:12 eiSouthBoy 阅读(125) 评论(0) 推荐(0)
摘要:一、树和二叉树 1-1 树的定义 翻译过来就是:树是由结点构成的,结点可以有也可以没有。若有结点,则肯定只有一个根结点。树是一种递归结构,俗称 “套娃” 1-2 二叉树的定义 翻译过来就是:二叉树是树的一个子集,每一个结点 至多 只能有两个结点(左结点和右结点) 二、二叉树的特性 2-1 二叉树的存 阅读全文
posted @ 2023-01-28 14:31 eiSouthBoy 阅读(48) 评论(0) 推荐(0)
摘要:一、简介 学生管理系统(Student-Management-System)项目链接:https://github.com/caojun97/Student-Management-System 目前正在学习算法与数据结构,学习线性表-单链表这一章节时,对于教材的知识点产生不解。教程上只有单一理论介绍 阅读全文
posted @ 2023-01-06 10:34 eiSouthBoy 阅读(86) 评论(0) 推荐(0)