05 2019 档案

【算法与数据结构】动态规划
摘要:用递归求解问题时,反复的嵌套会浪费内存。而且更重要的一点是,之前计算的结果无法有效存储,下一次碰到同一个问题时还需要再计算一次。例如递归求解 Fibonacci 数列,假设求第 n 位(从 1 开始)的值,C 代码如下:#include int fib(in... 阅读全文

posted @ 2019-05-10 22:13 kikajack 阅读(2575) 评论(0) 推荐(1)

【算法与数据结构】图的最小生成树 MST - Prim 算法
摘要:Prim 算法属于贪心算法。#include #define VERTEXNUM 7#define INF 10000typedef struct Graph { int vertex[VERTEXNUM]; int edge[VERTEXNUM][VERT... 阅读全文

posted @ 2019-05-06 22:52 kikajack 阅读(314) 评论(0) 推荐(0)

【C语言工具】AddressSanitizer - 内存检测工具
摘要:Github 地址:https://github.com/google/sanitizersWiki 地址:https://github.com/google/sanitizers/wiki/AddressSanitizer参考:基本使用:https://b... 阅读全文

posted @ 2019-05-04 13:56 kikajack 阅读(9624) 评论(0) 推荐(0)

【算法与数据结构】二叉堆和优先队列 Priority Queue
摘要:优先队列的特点普通队列遵守先进先出(FIFO)的规则,而优先队列虽然也叫队列,规则有所不同:最大优先队列:优先级最高的元素先出队最小优先队列:优先级最低的元素先出队优先队列可以用下面几种数据结构来实现:基于堆 heap,包括下面几种堆:二叉堆多项式堆Fibo... 阅读全文

posted @ 2019-05-03 22:17 kikajack 阅读(387) 评论(0) 推荐(0)

【算法与数据结构】三种简单排序 - 冒泡排序、选择排序、插入排序
摘要:冒泡排序逐个比较相邻元素,如果逆序则交换。每一趟都会让一个元素就位,总共比较 n-1 趟。n 个元素,需要进行 n - 1 轮冒泡,每次冒泡都会有一个元素就位,所以每轮冒泡的循环次数都会减一。时间复杂度为:1 + 2 + … + n-1 = n(n-1)/2... 阅读全文

posted @ 2019-05-02 12:33 kikajack 阅读(430) 评论(0) 推荐(0)