《代码大全》史蒂夫·迈克康奈尔《程序员修炼之道》 《计算机程序的构造和解释》《C程序设计语言》 《算法导论》 《重构:改善既有代码的设计》 《设计模式》 《人月神话》 《计算机程序设计艺术》 《编译原理》(龙书) 《深入浅出设计模式》《代码整洁之道》《编程珠玑》
分类:
其他好文 时间:
2015-04-15 18:47:34
阅读次数:
91
树的结构,如果不能保持平衡,那么其搜索性能会大大打折扣,而本节课介绍了几种经典的平衡树,如AVL,2-3-4tree,红黑树等等,然后着重讲了红黑树,接下来就红黑树的基本性质,作一些简短的总结。
首先,红黑树除了具有BST的基本性质外,还额外拥有以下的五大基本性质:
1)每个结点有一个色域,一个结点要么为黑结点,要么为红结点
2)根节点为黑结点
3)每个叶子结点都为黑结点(无键值...
分类:
编程语言 时间:
2015-04-14 21:37:52
阅读次数:
159
线性时间排序
1.计数排序
2.基数排序
3.桶排序...
分类:
编程语言 时间:
2015-04-14 19:42:38
阅读次数:
249
在算法导论的第一节课上,老师给我们展示了下面两段代码。突然想到很久之前看的一篇文章里提出的一个问题,是否有这样一段代码,能让你感动。看到这段代码后,起码这三年里,我找到了能让我感动的代码。
代码是两个函数的对比//参数 二维数组,数组的行数m,数组的列数n
void method1(int[][] array,int m,int n){
for(int row=0;row<m;row++){...
分类:
其他好文 时间:
2015-04-14 18:04:44
阅读次数:
120
这里利用直接寻址法去重,遍历链表,如果对应数组位置值为0,则修正为1,如果对应数组为1,则删除该节点。(数组初始化为0)链表的一些操作都简单的实现了一下。#include #include #include struct Node{ int key; Node *next;};struc...
分类:
编程语言 时间:
2015-04-14 14:26:36
阅读次数:
174
//作业2. 1-2
template
void insert(T* A, int n)
{
for (int j = 1; j
{
T key = A[j];
int i = j - 1;
while (i >= 0 && key > A[i])
{
A[i + 1] = A[i];
--i;
}
A[i + 1] = key;
}
}
//2. 1-...
分类:
编程语言 时间:
2015-04-14 08:37:14
阅读次数:
163
题意:
给gcd(a,b)和lcm(a,b),求a+b最小的a和b。
分析:
miller_rabin素数判定要用费马小定理和二次探测定理。pollard_rho因数分解算法导论上讲的又全又好,网上的资料大多讲不清楚。
代码://poj 2429
//sep9
#include
#include
#include
#define gcc 10007
#define max_prime...
分类:
其他好文 时间:
2015-04-14 08:32:43
阅读次数:
141
图(Graph)
(参考资料:《大话数据结构》《算法导论》)
图是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为:G(V,E),其中G表示一个图,V是图G中顶点(Vertex)的集合,E是图中边的集合。
图的相关术语
1.无向图与有向图
无向图:图中任意两个顶点u和v之间的边没有方向(无...
分类:
其他好文 时间:
2015-04-13 23:04:08
阅读次数:
245
问题:打印输出逆时针螺旋矩阵,要求螺旋矩阵的阶数由用户输入。例如 n=4时,输出的螺旋矩阵如下: 下面给出我的代码: 1 package org.warnier.zhang.exercises; 2 3 public class Convolution { 4 private...
分类:
编程语言 时间:
2015-04-13 20:26:48
阅读次数:
156