摘要: ---# 插入排序## 1.1 直接插入排序直接插入排序的特点: * 时空效率: 时间复杂度为O(n^2),空间复杂度为O(1)。最好情况下是元素基本有序,此时每插入一个元素,只需比较几次而无需移动,时间复杂度为O(n)* 稳定性: 保证相等元素的插入相对位置不会变化,稳定排序```Cvoid in... 阅读全文
posted @ 2015-03-16 20:50 charlesxiong 阅读(826) 评论(0) 推荐(0) 编辑
摘要: 1 动态数组它的基本思路是使用如malloc/free等内存分配函数得到一个指向一大块内存的指针,以数组的方式引用这块内存或者直接调用动态数组的接口,根据其内部的实现机制自行扩充空间,动态增长并能快速地清空数组,对数据进行排序和遍历。(在 "理解C语言(一)" 中介绍了动态数组,这里不再赘述)它... 阅读全文
posted @ 2015-03-16 20:44 charlesxiong 阅读(2376) 评论(0) 推荐(0) 编辑
摘要: ---## 前言在编写C\++代码时,我们不应该自己捕捉缺陷,而是由编译器和可执行代码为我们做这些事情,该书便提供了这样的一个思考。作者以“调试器友好”的方式编写了一些方便安全检查时所需的宏代码并针对C++代码中最为常见的各种错误制定了一些规则,并用代码实现,使之很容易在运行时捕捉,或者尽可能地在编... 阅读全文
posted @ 2015-03-06 23:27 charlesxiong 阅读(693) 评论(0) 推荐(0) 编辑
摘要: ---# 1 指针一般地,计算机内存的每个位置都由一个地址标识,在C语言中我们用指针表示内存地址。指针变量的值实际上就是内存地址,而指针变量所指向的内容则是该内存地址存储的内容,这是通过解引用指针获得。声明一个指针变量并不会自动分配任何内存。**在对指针进行间接访问前,指针必须初始化: 要么指向它现... 阅读全文
posted @ 2015-03-06 23:25 charlesxiong 阅读(5806) 评论(1) 推荐(0) 编辑
摘要: # 理解C语言(零) 导读(下):有用的C语言工具-从Make说起- - -# 1 Make在GNU中提供了一个用于管理多个C源代码文件的项目管理工具,用户只需按照一定的语法规则编写这个Makefile文件。输入make命令,系统会自动的根据当前文件的修改情况确定哪些文件需要重编译,一旦文件被修改... 阅读全文
posted @ 2015-03-06 23:24 charlesxiong 阅读(1120) 评论(0) 推荐(0) 编辑
摘要: _ _ _# 3 链接阶段:何为链接## 3.1 简介链接是将各种代码和数据部分收集起来并合并为一个单一文件的过程,该文件最后被加载到存储器中并运行。链接可以执行于编译时,由静态链接器完成;也可以执行于加载和运行时,由动态链接器完成。可以看出链接器在软件开发中扮演一个关键的角色,它使得分离编译成为可... 阅读全文
posted @ 2015-03-06 23:15 charlesxiong 阅读(2592) 评论(0) 推荐(1) 编辑
摘要: _ _ _# 1 从Hello world说起Hello world是初学者使用任何一项编程语言最基本最简单的程序。下面是一个C语言版的"Helloworld" :```#include int main(){ printf("Hello wolrd\n"); return 0;}```这段程... 阅读全文
posted @ 2015-03-06 23:03 charlesxiong 阅读(3440) 评论(0) 推荐(1) 编辑
摘要: # **1 完善GCC环境**- 安装g++编译器命令: `sudo apt-get install build-essential`build-essential是一套完整的软件包,它提供了编译程序必需的软件包列表信息,包括gcc,libc- 安装词法和语法分析器命令:```sudo apt-ge... 阅读全文
posted @ 2015-01-08 17:57 charlesxiong 阅读(7928) 评论(0) 推荐(0) 编辑
摘要: 1 更新软件源 装好ubuntu的第一件事就是添加更快速的源,因为官方提供的源服务器在国外,访问和下载速度要比国内源慢些,可以采用一些国内公司和大学提供的更新源. 方法一: 在 ,在 中在中国区选择速度最快的服务器源。这种方法比使用命令行快很多。 方法二:命令行设置: 备份原有源,恢复时... 阅读全文
posted @ 2015-01-08 16:58 charlesxiong 阅读(6570) 评论(0) 推荐(0) 编辑