随笔分类 - 算法与数学
摘要:博主按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步 "《并查集:集合合并与元素查找》原文地址" 。更欢迎来我的小站看更多原创内容: "godbmw.com" ,进行“姿势”交流 ♪(^∇^\ ) 1. 什么时候需要并查集? 在一些有 N 个元素的集合应用问题中,我们通常是
阅读全文
摘要:作者按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步 "《二叉搜索树的实现与常见用法》原文地址" 。更欢迎来我的小站看更多原创内容: "godbmw.com" ,进行“姿势”交流 ♪(^∇^\ ) 1. 为什么需要二叉搜索树? 选择数据结构的核心在于解决问题,而不是为了使用
阅读全文
摘要:常见的基础排序有选择排序、冒泡排序和插入排序。众所周知,他们的时间复杂度是 O(n\*n)。
但是,现在要重新认识一下基础排序算法,尤其是“插入排序”:在近乎有序的情况下,插入排序的时间复杂度可以降低到 O(n)的程度。
因此,在处理系统日志的任务中,因为日志记录是按照时间排序,但偶尔会有几条是乱序,此时使用插入排序再好不过。而对于高级排序算法,一个常见的优化就是利用插入排序做局部数据排序优化。
阅读全文
摘要:文章图片存储在 ,网速不佳的朋友,请看 "《进击的堆:最大索引堆》" 或者 来我的技术小站 "godbmw.com" 1. 为什么需要索引堆? 堆结构的数据增删操作,需要 操作。虽然可以被优化成每次一次赋值,然而当元素类型是复杂数据机构(例如:类、浮点数、结构体等),赋值操作的消耗不容小觑。 因此,
阅读全文
摘要:文章图片来源于 GitHub,网速不佳的朋友,请看 "《堆、堆排序和优先队列的那些事》" 或者 来我的技术小站 "godbmw.com" 1. 什么是堆? 堆是一种数据结构,它是一颗完全二叉树。 堆分为最大堆和最小堆: 1. 最大堆:任意节点的值不大于其父亲节点的值。 2. 最小堆:任意节点的值不小
阅读全文
摘要:本文用到的测试数据生成的代码和分析: "《测试数据自动生成》" 文章图片来源于 GitHub,网速不佳的朋友 "请点我看原文" 。 顺便软广一下个人技术小站: "godbmw.com" 。欢迎常来 ♪ 1. 谈谈高级排序 本文主要介绍高级排序算法中的归并排序和快速排序。他们有运用了
阅读全文
摘要:最近在学习排序算法的时候,需要利用程序自动生成测试数据,代码和思路整理在这篇文章里面。 文章图片来源于 GitHub,网速不佳的朋友 "请点我看原文" 。 顺便软广一下个人技术小站: "https://godbmw.com" 。欢迎常来 ♪ 1. 设计思路 因为会被很多排序算法调用
阅读全文
摘要:1. 为什么要学? 老师上课时候就说过:传统算法解决确定性问题,而机器学习解决非确定性问题。 好吧,确实激起了我的兴趣,所以系统学习一下吧。 文章图片来源于 GitHub,网速不佳的朋友 "请点我看原文" 。 顺便软广一下个人技术小站: "godbmw.com" 。欢迎常来♪ 2.
阅读全文