2013年5月8日
摘要: 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2. 假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任务。 3. 进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。 4. 一个车间里,可以有很多工人。他们协同完成一个任务。 ... 阅读全文
posted @ 2013-05-08 21:26 猿人谷 阅读(389) 评论(0) 推荐(1) 编辑
摘要: 名称复杂度说明备注冒泡排序 BubbleSortO(N*N)将待排序的元素看作是竖着排列的 “ 气泡 ” ,较小的元素比较轻,从而要往上浮 插入排序 InsertionSortO(N*N)逐一取出元素,在已经排序的元素序列中从后向前扫描,放到适当的位置起初,已经排序的元素序列为空选择排序 SelcetionSortO(N*N)首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此递归。快速排序 QuickSortO(n*log2(n))先选择中间值,然后把比它小的放在左边,大的放在右边(具体的实现是从两边找,找到一对后. 阅读全文
posted @ 2013-05-08 15:35 猿人谷 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 要求:输入一个字符串,统计每个单词的个数。单词间用空格隔开,可多个空格,写出自己认为高效的算法。例如:输入:I love love China输出为:I: 1love: 2China: 1首先想到的还是模拟的方法,就是用struct把出现过的单词缓存起来,然后再输入文本中遍历到新单词的时候,遍历一次struct,看这个单词是不是已经存,做相关处理。如果输入文本中有n个字母,不重复的字母为m个, 则算法复杂度为O(nm^2) 最好情况是m =1 ,最差情况是m=n 其实现代码如下: 1 #include <stdio.h> 2 #include <string.h> 3 阅读全文
posted @ 2013-05-08 15:31 猿人谷 阅读(1200) 评论(0) 推荐(0) 编辑
摘要: 在终端下输入:vimtutor系统自带的教程,虽然是英文版的,但看起来不会太吃力。 阅读全文
posted @ 2013-05-08 15:28 猿人谷 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 今天在网上见到这么一道题,用任何语言实现都行。题目为:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛?玉丰补充: 此题有一个模糊的地方,就是牛的年龄问题,可以这样理解,从小牛出生的那一年开始计算,三年后就可以生小牛了,其数据如下:1-3 A4 A AB5 A AB AC6 A AB AC AD7 A AB AC AD AE ABB(注意,今年AB已经4岁了,所以生了一只ABB)AB 是 A 在第4年生的,到第7年时,它4岁了,所以也生了一只ABB 1 #include <stdio.h> 2 //隔几年生小牛 3 #de 阅读全文
posted @ 2013-05-08 15:22 猿人谷 阅读(433) 评论(0) 推荐(0) 编辑