
C/C++
文章平均质量分 81
old_memory
交大软院学生,写博客是为了总结课程中学到的知识(找点事情做)
展开
-
cprintf函数调用到屏幕(cga)输出流程分析
本文所有代码均为JOS内核源代码,可以从MIT 6.828课程网站下载。 概述:所有向屏幕输出的过程,一定是经过参数处理,最后组织成一个字符数组(BUFFER),这个数组(一段内存)会在虚拟地址空间映射到显示硬件的那一部分空间里(memory mapped I/O 的思想)。这段空间是内核才能读写的,所以屏幕输出会进行系统调用。 C语言函数在调用printf时,会根据输出特点调...原创 2018-04-13 13:30:02 · 2377 阅读 · 0 评论 -
算法:O(n)时间内在数组中找到第k个小的数
从一个长度为n的无序数组中,找到第k小的那个数,被称为k-select问题。我们经常见到的问题:找到中位数,找到第二个大的数,都是这个问题的特例。算法的复杂度是O(20n),当选择为5个数为一个小集合时。OJ风格的完整代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<...原创 2018-04-25 10:17:07 · 1948 阅读 · 0 评论