最近上算法导论课,说道分治法,回来想用python写写程序练练手,于是模仿一通写了如下的代码: 方法实现了,可是现在问题来了。直接用max内建函数不是直接就解决问题了吗,为什么要使用分治法呢??
分类:
编程语言 时间:
2016-03-16 13:57:27
阅读次数:
218
刚刚开始系统学习算法导论和c++,每次学习的算法都用c++ 实现一边,加深理解,方便回顾。 先从最简单的插入排序开始吧: code: #include<iostream> #include<vector> #include<map> using namespace std; void Inserti
分类:
编程语言 时间:
2016-03-09 01:43:26
阅读次数:
236
原创博客,转载请注明:http://www.cnblogs.com/wuwenyan/ 当算法的输入n非常大的时候,对于算法复杂度的分析就显得尤为重要,虽然有时我们能通过一定的方法得到较为精确的运行时间,但是很多时候,或者说绝大多数时候,我们并不值得去花精力求得多余的精度,因为精确运行时间中的倍增常...
分类:
编程语言 时间:
2016-03-02 14:47:59
阅读次数:
233
定义:我们先来看看《算法导论》中的红黑树的定义:“红黑树是许多‘平衡’搜索树的一种,可以保证在最坏的情况下基本动态集合操作的时间复杂度为O(lgn)。”性质:红黑树的性质如下:1、每个节点是红色的,或者是黑色的。2、根节点和叶子节点是黑色的。3、如果一个节点是红色..
分类:
编程语言 时间:
2016-02-29 23:27:36
阅读次数:
617
红黑树是上一章二叉搜索树的改进,实现一种平衡 ,保证不会出现二叉树变链表的情况,基本动态集合操作的时间复杂度为O(lgn) 实际用途:c++stl中的set,map是用他实现的 红黑树的性质: 1.每个结点或是红色的,或是黑色的 2.跟结点是黑色的 3.每个叶结点(NIL)是黑色 4.如果一个结点是...
分类:
编程语言 时间:
2016-02-23 11:07:40
阅读次数:
326
搜索一个图是有序地沿着图的边訪问全部定点, 图的搜索算法能够使我们发现非常多图的结构信息, 图的搜索技术是图算法邻域的核心。 一、 图的两种计算机表示 1、 邻接表: 这样的方法表示稀疏图比較简洁紧凑。 typedef struct{ int adjvex;//邻接顶点的位置 struct ArcN
分类:
编程语言 时间:
2016-02-23 09:48:21
阅读次数:
294
算法是所有的基础,很多东西其实都比算法重要,例如用户体现,如果没有了算法,性能跟不上,一齐都白谈。所以算法是一齐的基础,好的算法能提升性能,性能提高了,一切才有意义。所以下面我们就来讨论一下算法 排序,排序里面包含了很多算法,从以下一个例子里面,我们可以找到有好多种不同的算法去解决问题。 题目-输入
分类:
编程语言 时间:
2016-02-18 06:33:56
阅读次数:
164
更多的理论细节可以用《数据结构》严蔚敏 看几遍,数据结构很重要是实现算法的很大一部分 下面主要谈谈python什么实现 10.1 栈和队列 栈:后进先出LIFO 队列:先进先出FIFO python 中使用list实现在这些功能 栈:压栈 append() 退栈 pop() 队列: 入队 appen...
分类:
编程语言 时间:
2016-02-12 10:30:53
阅读次数:
268
第i个顺序统计量:该集合中第i小的元素(建集合排序后第i位 当然算法可以不排序) 中位数:集合中的中点元素 下中位数 上中位数 9.1最大值和最小值 单独的max或min每个都要扫一遍 n-1次比较 如果同时找max和min 要 :1.2个数相互比较 1次{每次选出2个 选n//2次} 2.大的和m...
分类:
编程语言 时间:
2016-02-06 14:21:06
阅读次数:
288
比较排序:各元素的次序依赖于它们之间的比较{插入排序O(n**2) 归并排序O(nlgn) 堆排序O(nlgn)快速排序O(n**2)平均O(nlgn)} 本章主要介绍几个线性时间排序:(运算排序非比较排序)计数排序O(k+n)基数排序O() 第一节:用决策树分析比较排序的下界 决策树:倒数第二层满...
分类:
编程语言 时间:
2016-02-05 18:30:58
阅读次数:
229