- 博客(14)
- 资源 (18)
- 收藏
- 关注
原创 指针常量/常量指针 数组指针/指针数组 函数指针/指针函数 返回函数指针的函数/返回数组指针的函数
C语言中有各种比较纠结的结构,容易混淆,也经常说是面试的重点,现在就来总结下各种小纠结;指针常量和常量指针 要想搞清楚这一对,必须先知道const关键字;const关键字用来修饰一个变量,表示该变量是只读变量,不可以修改的;(在C语言中const修饰的变量是可以用指针来强制改变的,但在C++中是不行的;) 顺便说下const的几个作用:
2015-03-30 14:36:33 1404
原创 Linux环境编程之信号处理(一)
已经有差不多一年没有使用 《unix环境高级编程》中的知识了,现在抽个时间大概的复习下《unix环境高级编程》,也顺便记录下,方便以后再复习使用;信号简介1、信号是软件中断,提供的是一种处理异步事件的方法;2、不存在编号为0的信号,在kill函数中对信号0有特殊应用;3、对信号的处理方法有三种:a、忽略信号,也就是不做任何处理,SIGKILL/SIGSTOP(即:9/19号信号)不能被忽略;b、捕捉信号,也就是调用用户开始设计好的信号处理函数去处理;9/19号信号不能被捕捉;c、系统默认,不做处理,也不设置
2015-03-30 11:38:20 1018
原创 Linux内核源码分析--文件系统(九、File_dev.c)
file_dev.c程序是用于访问文件数据的读写程序;file_read() int file_read(struct m_inode * inode, struct file * filp, char * buf, int count)函数,从i节点为inode的文件中 filp中pos位置处开始读取count个字节数据存放到用户空buf内 功能:从i节点为inode的文件中 filp中pos处开始读取count个字节数据存放到用户空间buf处 参数:in
2015-03-26 15:41:46 2008
原创 Linux内核源码分析--文件系统(八、Block_dev.c)
由于是块设备的读写操作,所以每一次都是以块为单位(1024)进行操作;pos是文件的位置光标,用pos可以得到文件现在所处在哪块逻辑块上,并且在该逻辑块上偏移了多少。再根据块的大小 可以得到该逻辑块还剩下多少空间。最后跟需要写入的字符数比较,如果该逻辑块剩下的空间足够存放需要写入的字符,则读取该逻辑块到缓存区,然后进行数据的写入;否则,先填满逻辑块剩下的空间,然后再读取下一个逻辑块;
2015-03-26 14:27:29 2380
原创 排序算法之 插入排序、希尔(shell)排序 及其时间复杂度和空间复杂度
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这
2015-03-26 11:28:38 17237 2
原创 排序算法之 基数排序 及其时间复杂度和空间复杂度
基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。
2015-03-24 16:51:13 29062 4
转载 Linux任务/进程前后台切换
一、 &加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &,二、ctrl + z可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行 三、jobs查看当前有多少在后台运行的命令jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated,但是如果任务被终止了(kill),shell 从当前
2015-03-23 15:51:39 26733
原创 排序算法之 计数排序 及其时间复杂度和空间复杂度
计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。#include #include void print_array(int *array, int length) { int index = 0
2015-03-23 11:44:11 9859 1
原创 排序算法之 冒泡排序 及其时间复杂度和空间复杂度
冒泡排序算法是所有排序算法中最简单的(前面也提到过),在生活中应该也会看到气泡从水里面出来时,越到水面上气泡就会变的越大。在物理上学气压的时候好像也看到过这种现象;其实理解冒泡排序就可以根据这种现象来理解:每一次遍历,都把大的往后面排(当然也可以把小的往后面排),所以每一次都可以把无序中最大的(最小)的元素放到无序的最后面(或者说有序元素的最开始);
2015-03-17 11:46:06 37418
原创 排序算法之 选择排序 及其时间复杂度和空间复杂度
其实选择排序是非常简单的,和冒泡排序有异曲同工之妙。就是把元素分成两部分,一部分是有序的,另外一部分是无序的;每次循环从无序的元素中选取一个元素放到有序的元素中,依次循环到最后把所有元素都放到了有序那一部分中(也就是无序部分,元素为零);
2015-03-17 11:44:19 24034 1
原创 排序算法之 堆排序 及其时间复杂度和空间复杂度
堆排序是由1991年的计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特.弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了的一种排序算法( Heap Sort ); 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非
2015-03-14 12:02:05 58848 15
原创 排序算法之 归并排序 及其时间复杂度和空间复杂度
在排序算法中快速排序的效率是非常高的,但是还有种排序算法的效率可以与之媲美,那就是归并排序;归并排序和快速排序有那么点异曲同工之妙,快速排序:是先把数组粗略的排序成两个子数组,然后递归再粗略分两个子数组,直到子数组里面只有一个元素,那么就自然排好序了,可以总结为先排序再递归;归并排序:先什么都不管,把数组分为两个子数组,一直递归把数组划分为两个子数组,直到数组里只有一个元素,这时候才开始排序,让两
2015-03-12 16:16:47 57622 2
原创 排序算法之 快速排序 及其时间复杂度和空间复杂度
基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 我看了下网上有些bolg写排序算法,有的是理解错误了;有的呢是太过于复杂;还有的呢就干脆是用临时数组,而不是就地排序。当然我的也并没有多好,只是提够一种思路;
2015-03-11 14:48:20 78570 10
原创 Linux内核源码分析--文件系统(七、Namei.c)
1、功能和stncmp()函数一样,都是对指定字符串进行比较。比较指定长度len的name和de结构体中的name进行比较,相等返回1,否则返回0; //字符串匹配,参数分别为:比较长度,文件名指针,目录项结构体static int match(int len,const char * name,struct dir_entry * de){ register int same __
2015-03-04 15:02:25 3654
嵌入式Linux之我行系列
2015-07-20
Oracle VM VirtualBox 桥接模式驱动
2015-03-10
《ARM嵌入式Linux系统开发从入门到精通》.pdf
2014-08-11
ARM体系结构与编程+杜春雷.pdf
2014-08-11
软件开发电子书百宝箱
2014-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人