C语言的转义字符
摘要: 今天写C代码的时候用到了字符串结束标记,猛然感觉有些陌生,索性复习一下C语言的转义字符。
转义字符——当然也是字符,引用的时候要加单引号。C语言中之说以会出现转义字符,无非处于以下几个原因:
1.有些字符是不可见的,无法通过键盘输入(比如换行符、回车符、响铃等)。
2.有些字符已经有特殊的用途,无法直接引用(比如:'\',单引号、双引号等)。
3.使用转义字符能够使意图更清楚(比如字符串结束标志,我们更倾向于写成'\0',而不是直接赋0值)。
下表列出了C语言中所有的转义字符:
阅读全文
posted @
2012-07-31 23:09 小鼠标 阅读(1706) |
评论 (0) 编辑
优先队列--堆实现
摘要: 优先队列,其实我一直不愿承认“优先队列”是一种“队列”,现实世界的队列(比如排队)告诉我们,队列最明显的性质就是先进先出。而优先队列,似乎跟这个规则没什么关系……
阅读全文
posted @
2012-07-20 10:36 小鼠标 阅读(3291) |
评论 (0) 编辑
单调队列
摘要: 单调队列,顾名思义就是具有单调性的队列O(∩_∩)O~,一般的队列只能从队尾入队、队首出队;为了保持单调队列的单调性,单调队列除具有这两种性质外,还可以从队尾出队……
阅读全文
posted @
2012-07-19 12:21 小鼠标 阅读(5480) |
评论 (0) 编辑
快速排序、线性时间选择
摘要: 快速排序是运用了分治思想的排序方式,具有O(NlogN)的平均时间复杂度,极端情况下时间复杂度为O(N^2),跟冒泡排序一样,但是快排的实际效率远比最坏情况好很多。它的关键部分是一轮选择(由Partition()函数完成)……所谓线性时间就是在平均O(N)的时间内找出无序序列中第k大的元素。它是以Partition()函数的划分为依据的……
阅读全文
posted @
2012-07-17 16:46 小鼠标 阅读(3619) |
评论 (1) 编辑
堆排序
摘要: 堆排序是一种比较常用的排序方式,具有O(NlogN)的时间复杂度,它只需要一个记录大小的空间,算法的核心是“筛选”。
堆的存储方式是一维数组,因为它是一棵完全二叉树,孩子与双亲下标有简单直接的计算方式……
阅读全文
posted @
2012-07-16 11:18 小鼠标 阅读(1161) |
评论 (0) 编辑