![](https://img-blog.csdnimg.cn/20201108142945232.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法与数据结构
日常学习到的一些算法与数据结构相关的知识
BUFFER.pwn
计算机科学、人生、哲学
展开
-
串的(插入、删除、截取)结构演示程序(C++)
/***************************************************************************************程序名:串的(插入、删除、截取)结构演示程序测试环境:VC6.0作者:MZ21G********************************************************************...原创 2018-06-18 11:35:54 · 836 阅读 · 0 评论 -
广度优先搜索(BFS)的C语言实现
广度优先搜索算法(英语:Breadth-First Search,缩写为BFS),又译作宽度优先搜索,或横向优先搜索,是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。#include <bits/stdc++.h>using namespace std;static const int N = 10;stati...原创 2020-03-01 18:03:12 · 3723 阅读 · 0 评论 -
深度优先搜索(DFS)的C语言实现(递归与栈实现)
深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。属于盲目搜索。...原创 2020-03-01 17:14:28 · 2976 阅读 · 0 评论 -
快速排序的C语言实现与讲解
快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为较小和较大的2个子序列,然后递归地排序两个子序列。步骤为:挑选基准值:从数列中挑出一个元素,称为“基准”(pivot),分割:重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(与基准值相等的数可以到任何一边)。在这个分割结束之后,对基准值的排序就已经完成,递归排序子...原创 2020-02-25 21:25:08 · 331 阅读 · 0 评论 -
归并排序的C语言实现与讲解
归并排序是由递归实现的,主要是分而治之的思想,也就是通过将问题分解成多个容易求解的局部性小问题来解开原本的问题的技巧。这里多说一句,分而治之和减而治之是有区别的。分而治之是将一个问题分成两个或多个子问题(即两个或多个范围较小递归)solve(left, right){ int mid = (left + right) / 2; return max(solve(left, mid),...原创 2020-02-23 20:38:17 · 551 阅读 · 1 评论 -
递归的选择排序(C语言)
/** * 名称: 递归的选择排序 * 作者: mz21g * 日期: 2019.8.39 * */#include <stdio.h>#include <stdlib.h>#include <time.h>#define ARRAY 10 //生成多大的数组#define RANGE 100 //数组的元素大小从1到RAGNE...原创 2019-09-30 22:10:38 · 2590 阅读 · 0 评论 -
归并排序的实现(C语言链表)
/** * 名称: 归并算法的实现 * 作者: mz21g * 日期: 2019.8.29 * */#include <stdio.h>#include <stdlib.h>typedef struct CELL *LIST;struct CELL{ int element; LIST next;};LIST merge(LIST ...原创 2019-09-29 22:23:38 · 1452 阅读 · 0 评论