- 博客(4)
- 收藏
- 关注
原创 Linux系统用户空间分配
来自《Linux/UNIX系统编程手册》内存分配一章Linux的进程用户空间内存布局(实际上是简化版)主要关注这五个段(更准确的说是“区(section)”):文本段:存放程序代码,只读。因为代码可以被多个进程共享,所以在物理空间实际上只有一份初始化数据段:存放初始化的全局变量和静态变量,程序加载时从可执行文件读取未初始化数据段:一般称作BSS段,存放未初始化的全局变量和静态变量,在程序执行前全部被初始化为0,这样在可执行文件中就不用记录数据的值,只要给一个段的位置和长度,直到加载时才分配空间
2021-01-23 19:57:57
1335
原创 如何找出一组数中最大的K个数?
如何找出一组数中最大的K个数,这就是“Top K”问题,这里简单记录下对这个问题的思考过程。当数据量不大时很容易想到快排中划分算法的运用——找出数组中第K个数。每次划分数组,直到找到第K个数,由于第K个数作为哨兵进行了一次划分,那么前K个数就是我们要找的数。划分算法的时间复杂度是O(n)O(n)O(n)的,看起来已经是最好的了,不过前提是数据都能被一次读到内存中。当数据量较大时“数据量较大”指的是数据不能一次读完,那么我们就得想想怎么利用好内存,这里可以使用最小堆(如果找最小的K个就用最大堆)。简单
2021-01-04 21:45:45
838
1
原创 LeetCode刷题总结——二分查找
二分查找法先看最普通的二分查找[LeetCode704]二分查找代码如下class Solution {public: int search(vector<int>& nums, int target) { int l=0, r=nums.size()-1; while(l<r){ int mid=(l+r)/2; if(target>nums[mid])
2020-12-29 20:42:37
170
原创 LiteOS的VFS和ramfs
(简单做个笔记)VFS和ramfsLiteOS提供了VFS和各类文件系统(摘自百度百科)VFS(virtual File System)的作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统,即为各类文件系统提供了一个统一的操作界面和应用编程接口。ramfs是建立在内存中的一个非常简单的文件系统,通过它可以了解LiteOS的文件系统机制ramfs_init系统开始...
2020-02-06 19:37:55
823
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人