
E 数据结构与算法
文章平均质量分 87
DeepSea0920
一个逗逼程序员,兴趣广泛,喜欢Golang,Python和Clojure,目前以服务器后端开发为目标,坚持不懈,勤奋工作,努力学习
展开
-
算法分析学习笔记(一) - 动态连通性问题的并查集算法(上)
一. 写在前面的话 “算法分析学习笔记”系列是我在Coursera上选修Sedgewick教授的“Algorithms”公开课过程中积累的一些学习心得。本篇是该系列的第一篇,主题是动态连通性问题(Dynamic Connectivity)。大概在三年以前,当我正头痛于CLRS上晦涩的红黑树介绍时,无意中在网上发现了Sedgewick教授的一篇讲红黑树的ppt,把个稀奇古怪的红黑树讲得浅原创 2014-07-01 09:19:15 · 5248 阅读 · 5 评论 -
离散数学及其应用——ch1逻辑与证明
“逻辑与证明”这一章就讲了三个故事:命题逻辑、谓词逻辑和数学证明。逻辑是数学推理的基础,也是这门学科的基础,以后我们在算法和计算机程序中会大量用到证明,这章主要介绍逻辑和证明的各种工具,方法,策略。一.命题逻辑 1.1节和1.2节介绍了命题逻辑,首先我们要搞清楚“命题”的概念,“命题”是一种声明性的句子,它要么为真,要么为假,但不会既是真的,又是假的。举个例子,句子“今天是星期天”原创 2013-08-17 20:43:57 · 2355 阅读 · 0 评论 -
离散数学及其应用——ch2 基础结构:集合、函数、序列和求和
公理化集合论是乔治康托尔建立的,它是整个现代数学的基础,这突出表现在很多很重要的数学概念,比如函数,都是通过“集合”来建立的。本章重点介绍了集合和函数的基本概念,并由此引出一类特殊的被称为“序列”的函数。本章的基础和重点集中在集合和函数这两个概念的区别和联系上面,学习函数,要注意和重视“集合”的概念是如何在函数中体现的。深刻地理解基本概念是掌握和应用知识的最重要的基础。因此,深刻地理解集合的概念是原创 2013-08-17 20:45:11 · 3095 阅读 · 1 评论 -
算法分析学习笔记(二) - 栈和队列(上)
一. 写在前面的话 本篇为“算法分析学习笔记”系列的第二篇,我们来聊一些跟基础数据结构有关的知识。对于网上无数的算法高手来说,这里讨论的东西都太小儿科了,但是作为一个系列的文章,我们还是要把该有的东西都补充完整的。本篇介绍两种最基本的抽象数据类型——栈和队列,以及支撑这两种数据类型的底层机制,计算机中一个很重要的概念——链表,确切的说,是“链式存储结构”。本篇分为两个部分,上半部分从回原创 2014-07-14 09:13:47 · 1084 阅读 · 0 评论 -
算法分析学习笔记(三) - 排序算法(下)
四. 走向世界之巅——快速排序 你可能会以为归并排序是最强的算法了,其实不然。回想一下,归并的时间效率虽然高,但空间效率仍然有可以改进的空间,人类仍然不满足,仍然孜孜不倦追求更好,更快和更强,于是便有了快速排序,这一神一样的算法以各种面目出现在各种编程语言中,最著名的就是C语言中的qsort了,Java也用它来排序基本类型。快速排序被称为20世纪最伟大的10大算法之一,它们是:原创 2014-08-04 09:36:57 · 1371 阅读 · 0 评论 -
算法分析学习笔记(一) - 动态连通性问题的并查集算法(下)
三. 实际应用——解决物理化学中的渗滤模型问题 该问题来自于http://coursera.cs.princeton.edu/algs4/assignments/percolation.html,问题的原版描述如下: Percolation. Given a composite systems comprised of randomly distributed insula原创 2014-07-07 09:53:39 · 3025 阅读 · 1 评论 -
动态规划——切钢筋、矩阵链乘法、菲波拉契数列和背包问题
动态规划——切钢筋问题#include #include #define UNKNOWN -1#define LEN 10int rodcut(int len);int rodcut_TD(int len);int rodcut_BU(int len);void printSolution(int len);int prices[LEN +原创 2013-08-17 20:37:11 · 933 阅读 · 0 评论 -
算法分析学习笔记(二) - 栈和队列(下)
六.一些有关栈和队列的面试题(取自“Cracking The Coding Interview”一书)1. How would you design a stack which, in addition to push and pop, also has a function min which returns the minimum element? Push, pop and mi原创 2014-07-21 09:12:30 · 1478 阅读 · 0 评论 -
算法分析学习笔记(三) - 排序算法(上)
一. 写在前面 要学习算法,“排序”是一个回避不了的重要话题,在分析完并查集算法和常用数据结构之后,今天我们终于可以走近排序算法这个大家族了。计算机科学发展到今天,已经有了成百上千种让你眼花缭乱,多的数不清的排序算法,而且还会有更新更厉害的算法尚未问世,它们都是人类无穷智慧的结晶,有太多太有意思的内容等待我们去思考,去品味。作为一篇入门级的学习笔记,我们不会在这里展开讨论,但是,我们将原创 2014-07-28 10:26:50 · 1723 阅读 · 0 评论