摘要:
大体上和 @丁戍 说的差不多。简单说O(n²)表示当n很大的时候,复杂度约等于Cn²,C是某个常数,简单说就是当n足够大的时候,n的线性增长,复杂度将沿平方增长。O(n)也是差不多的意思,也就是说n很大的时候复杂度约等于Cn,C是某个常数。O(1)就是说n很大的时候,复杂度基本就不增长了,基本就是个 阅读全文
摘要:
算法一直是编程的基础,而排序算法是学习算法的开始,排序也是数据处理的重要内容。所谓排序是指将一个无序列整理成按非递减顺序排列的有序序列。排列的方法有很多,根据待排序序列的规模以及对数据的处理的要求,可以采用不同的排序方法。那么就整理下网上搜索的资料,按自己的理解,把C语言的8大排序算法列出来。 普通 阅读全文
摘要:
二、插入类排序 插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。 插入排序一般意义上有两种:直接插入排序和希尔排序,下面分别介绍。 3、直接插入排序 基本思想: 最基本的操作是将第i个记录 阅读全文
摘要:
分为两大类: 一:静态存储区(只做一次初始化,不关机不丢失,结果维持一份) 外部变量+静态变量(静态变量按定义以及作用域又分:①源文件下的,②某个函数中的,③某个函数中的某几句用{}括起来的) 结果维持一份; 二:栈stack(每次调用都会初始化,每个被调用中维持一份拷贝) 一般变量 三:堆heap 阅读全文
摘要:
阅读全文
摘要:
I2C协议v2.1规定了100K,400K和3.4M三种速率(bps)。SPI是一种事实标准,由Motorola开发,并没有一个官方标准。已知的有的器件SPI已达到50Mbps。具体到产品中SPI的速率主要看主从器件SPI控制器的性能限制。 阅读全文
摘要:
全双工指在发送数据的同时也能够接收数据,两者同步进行。目前的网卡一般都支持全双工。 同时收发 所谓半双工就是指一个时间段内只有一个动作发生,早期的对讲机、以及早期集线器等设备都是基于半双工的产品。 发了收,收了发 阅读全文
摘要:
个人理解: 信号量(进程间的通信机制(单一个数的信号),与消息邮箱,消息队列,机理类同,量不同,)用信号量肯定掉cpu; 自旋锁:保护区域不掉cpu,持续查找,等待(不可用时域长状态); 切记: 时域范围: 在进程间的通信机制函数状态 ∩ 锁 = 0; 互斥锁与自旋锁 互斥锁:线程会从sleep(加 阅读全文
摘要:
两种锁的加锁原理 互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。 自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。 两种锁的区别 互斥锁的起始原始开销要高于自旋锁,但是基本是一劳永逸,临界区 阅读全文
摘要:
概念 操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。 操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。 阅读全文
摘要:
内容接自《数据结构基础知识(1)》。。。 链表的分类 单链表 单链表是一种链式存取的结构,为找第 i 个数据元素,必须先找到第 i-1 个数据元素。图中阴影区域表示数据域,空白区表示指针域。而且最后一个指针域为空。 循环链表 循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向 阅读全文
摘要:
队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。 队列有下面几个操作: InitQueue() ——初始化队列 EnQueue() ——进队列 DeQueue() ——出队列 IsQueueEmpty()——判断队列是否为空 IsQueueFul 阅读全文
摘要:
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 数据结构具体指同一类数据元素中,各元素之间的相互关系,包括两个组成成分,数据的逻辑结构,数据的 阅读全文