自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大黑暗天 的专栏

厚积方能薄发

  • 博客(26)
  • 资源 (4)
  • 收藏
  • 关注

原创 常见排序算法

索引1. 插入排序     1.1 直接插入     1.2 折半插入     1.3 希尔排序 2. 交换排序     2.1 冒泡排序     2.2 快速排序 3. 选择排序     3.1 直接选择     3.2 堆排序 4. 归并排序      4.1 迭代归并  总结 1. 插入排序    思想:每步将一个待排序的对象, 按其排序码大小, 插入到前面已经排好序的一组对

2011-03-24 12:51:00 2061

原创 表达式求值(中缀表达式——后缀表达式——求值)

        表达式求值,属于数据结构——栈的典型应用。使用后缀表达式的与原因,是因为在求值的过程中,不需要考虑操作符的优先级。(结合性仍需要考虑)        但是一般的书上只讲到如何处理二元操作符,并且结合性都是从左到右结合的。这里的实现能够处理一元操作符,并且能够处理从右向左结合的幂乘^操作符。功能需求        给定一个中缀表达式,求出该表达式的值。        

2011-03-19 12:50:00 9146 6

原创 探讨关于 整数除法 和 取余 的映射规律

一、引子问题:        一个简化的日期问题: 假设每一个月都是30天。假设盘古开天辟地的时候,是计算时间的开始(按照习惯,该天成为第1天,但是注意在程序中,表示的数字并不一定是1)。这里要计算的问题是:给定一个是从世界开始的一个总天数,让你计算该天属于从世界开始的第几个月,并且在该月中是第几天?二、初步分析:        看了上面的问题,是不是觉得非常简单?是的,确实非常简单,

2011-03-14 12:41:00 3526 1

原创 C++的异常处理

一、什么是异常处理        一句话:异常处理就是处理程序中的错误。二、为什么需要异常处理,以及异常处理的基本思想        C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这些错误,但却

2011-03-10 12:46:00 26180 13

原创 最大子序列和问题 一步一步到最优

对于 一个求“最长子序列和”的问题,逐步深入分析,给出共四种方法,时间复杂度 从O(n^3), 到O(n^2), 到O(n*logn), 到O(n)。

2011-03-03 12:41:00 3035 1

原创 N人围圈,报数删除问题(约瑟夫问题)

N人围圈,报数删除问题,也就是“约瑟夫问题” 这是个比较简单,但却比较经典的问题。问题描述:n 个人围成一圈报数,报到 m 的人出列,要求计算删除顺序,并找到最后剩下的那个人。

2011-02-27 12:39:00 6298 1

原创 从一个计算 数组累加和 的小程序看 程序性能优化 的小技巧

从一个计算 “数组累加和” 的小程序看 “程序性能优化” 的小技巧。 主要包括以下几条: 1. 避免多余的函数调用; 2. 避免多余的条件判断和边界检查; 3. 利用局部变量保存中间计算结果;

2011-02-23 12:45:00 4339

原创 C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容

本文目的:理清在各种继承时(单继承、多继承、虚继承),构造函数、复制构造函数、赋值操作符、析构函数的“执行顺序”和“执行内容”。    

2011-02-18 12:07:00 7882 5

原创 C语言的命令行参数

         命令行参数的最大作用就是让我们可以在程序之外控制程序,例如linux或者dos中我们经常使用的命令,从本质上将是一个程序;而我们使用的参数,就是该命令(对应的程序)的命令行参数。          正是由于命令行的这么重要的作用,所以它成为各种编程语言不可缺少的功能,只是实现细节上略有不同,但大体上都是一样的,而且都比较简单。 1. 先想一想 1.1 程序中在哪里接收命令行参数(where)          命令行参数,顾名思义,就是在命令行调用程序时传递的参数,那么谁来接收呢,

2011-02-13 12:38:00 12232 4

原创 C语言的预编译

Technorati 标签: C,预编译,宏,文件替换,条件编译          由“源代码”到“可执行文件”的过程包括四个步骤:预编译、编译、汇编、链接。所以,首先就应该清楚的首要问题就是:预编译只是对程序的文本起作用,换句话说就是,预编译阶段仅仅对源代码的单词进行变换,而不是对程序中的变量、函数等。         预编译指令的基本知识不作详细介绍,只稍作汇总,重点是后面的我能想到的 使用时的注意事项。 1. 基本内容 预编译指令基本分类如下 类别

2011-02-09 12:31:00 8386

原创 C语言的布尔类型(_Bool)

Technorati 标签: C,布尔,boolean,_Bool,stdbool.h          也许很多人都和我一样,从C99标准开始,不知道C语言已经有了布尔型,类型名字为“_Bool”。         在此之前的C语言中,使用整型int来表示真假。在输入时:使用非零值表示真;零值表示假。在输出时:真的结果是1,假的结果是0;(这里我所说的“输入”,意思是:当在一个需要布尔值的地方,比如 if 条件判断中的的条件;“输出”的意思是:程序的逻辑表达式返回的结果,比如 a==b的返回结果,只有

2011-02-05 13:04:00 151737 9

原创 忽然回味C经历

        不知何故,今日思绪乱飞,又回到了自己的大学时代。         从开始写博客以来,写的文章大多都与C语言有关,这是因为开始写博以后,不知从哪一天开始,突然来兴致,想复习一下被自己遗忘的C,重温一下这个无比基础而又强大的语言,这个带我入门的语言。         大一刚刚开学,军训期间领到了课本,在一摞书中,忽然注意到一本绿色的并且挺厚的书,大家可能也和我用的书一样,谭浩强老师的《C程序设计》。当时不知所云,翻看一看,更是迷茫,随机丢到一边。第一门专业课,现在回想,竟然记不清这门课的确

2011-02-01 12:48:00 2154 1

原创 C语言中结构体 自引用 和 相互引用

Technorati 标签: C语言,结构体,自引用,相互引用,self reference,mutual reference         结构体的自引用(self reference),就是在结构体内部,包含指向自身类型结构体的指针。         结构体的相互引用(mutual reference),就是说在多个结构体中,都包含指向其他结构体的指针。 1. 自引用 结构体 1.1 不使用typedef时 错误的方式: struct tag_1{ struct tag_1 A;

2011-01-27 11:52:00 24726 3

原创 回溯法解决“八皇后”问题

Technorati 标签: 回溯法,backtrack,八皇后,eight queens puzzle         “回溯法”和“八皇后”问题本身不再多做介绍,相信很多人都知道,尤其是学习过数据结构的人。如果还不清楚可以google或者baidu一下,亦或是找本数据结构的书看一下。         “八皇后”问题:可以简单的理解为在一个8*8的棋盘上,放8个旗子(国际象棋中称为皇后queen),要求这8个棋子中任意两个都不在同一行、列、斜线上。         “回溯法”用在这里的思路是:

2011-01-23 12:47:00 2466

原创 C语言中标识符的作用域、命名空间、链接属性、生命周期、存储类型(下)

Technorati 标签: C,标识符,作用域,命名空间,链接属性,生命周期,存储类型,scope,name space,linkage,storage durations,lifetime 3. 标识符的链接属性         主要用于处理多次声明相同的标识符名称后,如何判断这些标识符是否是同一个。          原文对链接属性(linkage)的定义如下:An identifier declared in different scopes or in the same scope more t

2011-01-20 13:40:00 6932 9

原创 C语言中标识符的作用域、命名空间、链接属性、生命周期、存储类型(上)

Technorati 标签: C,标识符,作用域,命名空间,链接属性,存储类型,scope,name space,linkage,storage durations,lifetime         无论学习哪一种语言,都免不了要讨论这些问题。而且这些问题,深究起来有时也让我们很迷惑。        标识符的定义无需多讲,只需注意不仅仅是指变量,还有函数。 1. 标识符的作用域         作用域是指允许对标识符进行访问的位置范围。按照C99(章节6.2.1),C语言的作用域共有 4 种类型:文

2011-01-16 14:44:00 7817 7

原创 为什么用 递归 计算“阶乘”和“斐波那契数列”是不合适的?

Technorati 标签: 递归,阶乘,斐波那契数列,fibonacci         《C和指针》的作者Kenneth A. Reek说,他认为这是很不幸的:“计算阶乘时不能提供任何优越之处;在斐波那契数列中,使用递归效率非常非常低”。  对于计算斐波那契数,使用递归和使用迭代的效率有可能相差几十万倍。

2011-01-12 14:41:00 4614 1

原创 C和Java中函数的可变参数列表

Technorati 标签: C语言,函数,可变参数列表,stdarg         所谓“可变参数列表”就是指函数的形参的数目和类型是不确定的。printf函数就是一个可变参数的函数,第一个参数是格式化字符串,后面可以跟任意数目的参数。而我们平时使用的函数,其参数的数目和类型都是固定的,一旦声明,无法改变。 1. 先看一个问题         计算一系列值的平均值,注意:这些值不是保存在数组中的,而是在参数中显示的传递。 常见的实现方式可能如下:/*参数: n_values 可变参数

2011-01-08 14:18:00 4703 1

原创 《C和指针》快速入门的例子分析及其扩展

Technorati 标签: C和指针;快速入门;例子;扩展;字符串         如果想深入理解C语言的指针,很多人会推荐你读《C和指针》。         本书在第一章给出了一个快速入门的例子,虽然作者的目的是让读者通过这个例子快速的了解C语言的语法情况,但是这个例子本身的处理逻辑、尤其是一些细节,还是比较晦涩难懂(尽管个人觉着这是一个不错的例子),希望这篇文章能够在逻辑上给需要的人提供一些帮助。至于语法方面,这里不再做解释,如果有需要的话,还是去读原书吧,书上比较详细。最后再总结一下来自练习题的

2011-01-04 12:27:00 3186

原创 Java中 String类、StringBuilder类、StringBuffer类 区别与如何选择

Technorati 标签: String,StringBuilder;StringBuffer,区别;选择       关于这三者的区别,我们从官方API上很容易找到答案。 这里做了一下比较,并写了点测试代码。        关于《Java中的String的 方法归类 及其 不可变性》参看本博客另一篇文章:http://blog.csdn.net/daheiantian/archive/2010/12/20/6097353.aspx 1. 概述:         1.1 String      

2010-12-31 14:10:00 5542 2

原创 字符串赋值给字符指针(char *a="hello")的正确理解方式

Technorati 标签: 字符串,数组,地址,char *; 对于语句  char *a=“hello”;         对于这个声明方式,会造成的误解是:声明了一个字符指针,将“字符串”赋值给 指针表达式”*a”。但正解是:声明了一个字符指针后,并用字符串常量的第一个字符的地址赋值给指针变量a。        这里有两点需要考虑清楚的地方:①*a只是指向一个字符。举例如下: #include #include int main(void){ char *a="bcd"; print

2010-12-28 14:42:00 24323 8

原创 C语言有关指针的变量声明中的几个易错点

Technorati 标签: 指针,typedef,const,define          我们都知道,至少听说过指针对于C语言中的重要意义,但是在使用指针时却唱唱让我们痛不欲生,这里有几个在声明指针有关的变量时易错的地方。 1. int* 和 int  * (注意空格的位置)         对于单变量声明,即一条语句中只声明一个指针变量的情况,没有区别;原因是C语言允许形式的自由性。即以下两种声明方式效果相同。 int *a;int* a;       对于一条语句中声明

2010-12-25 10:34:00 6758

原创 Java中的String的 方法归类 及其 不可变性

Technorati 标签: Java,String,方法,函数,归类,不可变性        可以证明,字符串操作是计算机程序设计中最常见的行为。——摘自《java编程思想》          英文:String manipulation is arguably one of the most common activities in computer programming.  ——摘自《Thinking in Java》         上面这句话是Bruce Eckel(作者,绝对的牛人),在

2010-12-20 14:52:00 3550 1

原创 C语言中鲜为人知的“三字母词” (trigraph sequences)

Technorati 标签: C语言,三字母词,trigraph sequences,三联符序列,C99,ANSI C          在ANSI标准中,定义了“三字母词”,或者成为“三联符序列”,英文为"trigraph sequences"。目的主要是为了在一些特定的字符集中,比如一些七位代码集中,解决一些特定字符的输入问题。          也许是由于这些字符集我们基本上用不到,所以在大多数C语言的书籍中,我们都看不到对“三字母词”的讲解。这里资料来源于参考ANSI C99标准(即传说中的《A

2010-12-17 14:57:00 11955 6

原创 MySQL官方参考文档学习笔记——第3章

MySQL官方参考文档学习笔记——第3章Technorati 标签: MySql 官方 参考文档 Reference Manual 学习笔记 第3章 写在前面:读书就要做笔记,这篇文章是读MySQL官方参考手册后做的笔记,其中加入了自己的一些总结和汇总。 目录 MySQL官方文档第三章 1 连接和断开 1.1 连接 1.2 断开 2 命令基本原则 2.1 几条基本特征 2.2 提示符 3 创建并使用数据库 3.1

2010-12-10 14:41:00 3456

原创 linux的文件属性和权限学习——分析ls命令结果

最近阅读《鸟哥的linux私房菜》,确实是一本好书,使自己在文件属性和权限方面有了较深的理解,总结如下。(注:本篇文章的图片来自于《鸟哥的linux私房菜》一书)一、提纲本篇文章主要包含以下几个部分:1.   用户和用户组的概念;2.   文件属性;3.   目录与一般文件的区别;4.   ls命令的使用详解; 二、用户和用户组     linux的系统是“多用户、多任务环境”的,也就是说“linux系统允许多个用户同时使用系统,并且可以同时执行不同的任务”。所以为了确保各个用户的文件安全, linux系统

2010-10-29 19:56:00 8611 5

python 2.5官方手册

这是python 2.5的官方指导手册。

2010-04-07

python核心编程 第二版 习题答案 附录

最近在学习python,看了几本书以后,发现这本书很好,这是我找到的习题答案,与大家分享了。

2010-04-06

程序员面试 九阴真经

现在大家找工作一定要做到准备充分:对于已经毕业的,可以再复习一下以前的准备的知识;对于在校没有毕业的,更需要准备一下。所以我将自己收集到的一些资料分享给大家,希望能对大家有所帮助。

2010-04-02

程序员面试之葵花宝典

现在大家找工作一定要做到准备充分:对于已经毕业的,可以再复习一下以前的准备的知识;对于在校没有毕业的,更需要准备一下。所以我将自己收集到的一些资料分享给大家,希望能对大家有所帮助。

2010-04-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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