C语言中常见的随机函数和计时函数

  本来想系统地总结一下C语言中随机函数和计时函数的使用,因为在平时测试算法时经常用到。但简单调研之后发现水还是有点深度,所以就只把我用过证明可行的整理一下。在大多数情况下,我想这也一定足够了。

  • rand()函数产生随机数

  rand()函数产生的实际上是“伪随机数”(我没有[……]

Read more

OpenGL编程学习(1)-引言

  已经是第二个学期学习计算机图形学了,本科的时候叫“计算机图形学”,现在叫“高级计算机图形学”。但由于学习态度不甚端正,加上本人实在是才疏学浅,所以对OpenGL编程的理解总是局限于细枝末节,每次要写程序实验才搬起书来一个一个找函数,凑成一个“紧急集合”似的程序。

  由于本人也在渐渐领悟“[……]

Read more

编程珠玑笔记(10)-算法设计技术

  在这一章中,作者对同一个问题依次介绍了4种不同时间复杂度的算法,算法的执行速度依次变得更快。据此阐述了作者的(其实也是被普遍认同的)一个观点:复杂深奥的算法有时可以极大地提高程序性能。(纵然在体系结构领域结论往往是相反的。)

  • 问题

  来自一维模式识别的问题。问题的输入是具有n个浮[……]

Read more

编程珠玑笔记(9)-粗略估计

  本章内容比较有意思,它指导读者在日常生活中或工程计算中通过一些最简单的粗略计算来解决或评价一些具体的问题,比如估算项目完成后能否符合实际情况的需要,程序约需要多大的内存空间以及在大数据集下的与运行时间等。

  • 基本技巧

  两个答案比一个答案好。  &nbs[……]

Read more

编程珠玑笔记(8)-程序性能分析

  本章篇幅较短,着重举了一个例子——Appel优化N体问题的过程。这是发表于1985年的一篇文章,Appel从多个层面对该问题进行了相互独立的优化,包括算法和数据结构、算法调优、数据结构重组、代码调优、硬件等层面。最终获得了400倍的加速系数,使得原先需要运行一年的程序现在只需要一天时间。[……]

Read more

编程珠玑笔记(7)-编程小事

  本章的内容与第4章一脉相承。第4章详细叙述了如何获得正确的二分搜索程序,并给出了详细的伪代码和正确性证明。本章则是在其基础上真正实现二分搜索的C语言程序。在叙述的过程中,作者展示了如何利用脚手架和断言技术来对代码段进行测试。

  第5小节还介绍了计时的概念,但根据习题7中的讨论,书中展示的[……]

Read more

编程珠玑笔记(6)-编写正确的程序

  作者在这一章叙述了编写正确程序的基本方法,在这个过程中介绍了断言、不变式等重要概念,主要介绍了人工程序验证这种检验程序正确性的方法。

  用到的例子是二分搜索,作者在第一小节便强调,二分搜索从论文的发表到第一个没有错误的程序出现,历经了16年的时间,以此来强调编写正确程序的重要性和本章的必[……]

Read more