Zhang's Wikipedia

玩就玩大的

编程模式(schema) —— 表驱动法(table-driven)

使用表驱动法,而非繁琐冗长的 if/else, switch case(本身也代表一种代码坏味道),也是替身编程质量的重要手段, 表驱动法是一种编程模式(schema)—— 从表里面查找信息而不使用逻辑语句(if/else, switch/case)。事实上,凡是能通过逻辑语句来选择(路由,分发)...

2017-10-10 23:38:31

阅读数 176

评论数 0

assert 的理解

assert 可以实现如下功能: 保证参数之间的大小等约束关系; 函数执行过程中得到的中间结果是否符合预期;def gen_batch(batch_size, skip_window, num_skips): assert batch_size % num_skips == 0 a...

2017-06-03 19:00:49

阅读数 617

评论数 0

结构化编程 —— 顺序、分支(选择)、循环

sequence、conditional(selection)、selection 1. 为什么只有这三种结构计算机中所有的存储都有 01 两种状态,因此整个计算机的数据就有 2^n 种状态,这些状态可以分别视为平面图上的点,而程序就是操作这些点进行状态转移的有向图(有限自动状态机),

2017-03-16 23:12:28

阅读数 1215

评论数 0

编程军规 —— Java 篇

1. matlab善用结构体作为函数的参数,以更多地对 matlab 这种编程语言,引入面向对象的编程思想。

2016-12-18 13:08:45

阅读数 407

评论数 0

编程思想 —— 哨兵的使用

1. LDA:Leading Dimension of AView topic - leading dimension? Clarification of the leading dimension in CUBLAS when transposing 完整的说法是:leading dime...

2016-11-02 21:01:21

阅读数 3787

评论数 0

递归缩写

GNU:GNU’s Not Unix Linux:Linux Is Not UniX EMACS:EMACS Makes A Computer Slow PNG:PNG’s Not GIF RPM:RPM Package Manager

2016-10-22 11:44:08

阅读数 704

评论数 0

开源软件的许可(License)

自由软件基金会(Free Software Foundation):FSF 0. GNUGNU (GNU is Not Unix 的递归缩写)计划,又称革奴计划,是由 Richard Stallman 在 1983 年 9 月 27 日公开发起的。它的目标是创建一套完全自由的操作系统。

2016-10-22 11:34:21

阅读数 1678

评论数 0

visual studio 编译器在辨异 C/C++ 程序时的注意事项

1. 数组大小的限制visual studio 对数组的维数(元素的个数)没有限制,但要求数组的 size (sizeof() 后的结果,所占内存的大小)不得超过 0x7fff ffff = 2^31-1;

2016-10-20 18:15:20

阅读数 549

评论数 0

位运算应用及其注意事项

1. 可能发生的溢出 使用 64 位整数时发生的溢出。试编写代码,使其能够确认无符号的 64 位整数的位掩码(bitmask)a 的第 b 位(从右向左数)是否已经打开

2016-10-16 12:16:59

阅读数 258

评论数 0

声明与定义

从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存(存在客观上的实物)。

2016-09-24 19:50:15

阅读数 318

评论数 0

while 常见程序逻辑

1. 查找List L; Position P = L; while (P && P->Element != Key) { P = P->Next; } return P;

2016-09-21 10:25:17

阅读数 289

评论数 0

C/C++ 变量的初始化

1. 二维数组 2. 结构体初始化

2016-09-21 08:19:13

阅读数 293

评论数 0

函数多个“返回值”

1. 通过参数确切地说,通过参数列表中,引用类型的参数,本质上返回值仍只有一个,且为基本数据类型;

2016-09-19 18:54:23

阅读数 437

评论数 0

递归与尾递归

递归:recursion,尾递归:tail recursion 尾递归和一般的递归不同在对内存的占用,普通递归创建 stack 累积而后计算收缩,尾递归只会占用恒量的内存(和迭代一样)。SICP 中描述了一个内存占用曲线,以 Python 代码为例(普通递归),求解前 N 个自然数的和

2016-09-18 15:29:10

阅读数 291

评论数 0

编程常见处理逻辑

1. 含有父指针的二叉树结点含有父指针的二叉树结点,一般会定义这样的一个宏(获取从父节点指向自己的指针):

2016-09-18 12:03:36

阅读数 342

评论数 0

程序思维

程序思维,本质上是计算机的思维。计算思维与人的思维有相似的地方,但又不完全一致,设置起始以及遍历结束的位置,规定运算流程,计算机便可以不厌其烦地重复执行下去。

2016-09-17 17:48:53

阅读数 324

评论数 0

接口的理解

编程世界的接口,对应于函数(不论是类中的成员函数,还是普通的外部函数); 现实世界的接口,则对应于插板上的接口; 不管是现实世界还是编程领域,接口都意味着一种规范,只有与接口相适配,才能调用和使用接口; 我是三孔的插板(函数的形参),你必须是三孔的插头(调用端); 当然也要求输出也是一致的;

2016-09-08 20:31:21

阅读数 250

评论数 0

函数的引用透明性(referential transparency)

1. 基础初学程序设计时,比较容易混淆的两个概念是数学函数(math function)和程序中使用的函数。在数学函数中 y=f(x)y=f(x),一个输入值有固定的输出值。例如,无论计算多少次,sinπ\sin\pi 的结果总是 0。如果 f(x)=x/2f(x)=x/2,那么 f(10)f(1...

2016-09-08 16:43:36

阅读数 3136

评论数 0

x=min(x, y)

x = min(x, y); ⇒ 当然 y 会有多个值传递进来 minHeight = min(minHeight, h[i]);置于循环之中,不断将当前得到的最小高度值和新加入进来的值进行比较; 并在新值小于其值时,对其进行更新; 不断将序列中的新值和自己进行对比,并更新; 最终新得到...

2016-09-07 16:45:56

阅读数 350

评论数 0

变量和数据结构的赋初值

1. 一般变量 寻找最大值,则赋初值为最小值const int MIN = numeric_limits<int>::min(); int left = MIN; left = max(left, value); 查找序列(序列从 0 开始编号)中的序号int firstFree = ...

2016-09-05 08:24:43

阅读数 509

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭