摘要:
初稿:2017-11-19 23:57:11 String的构造方法 1 import java.nio.charset.Charset; 2 import java.io.UnsupportedEncodingException; 3 4 public class StringContructor 阅读全文
摘要:
初稿:2017-11-19 21:58:21 进程和程序的区别 进程是动态的,程序是静态的,进程是暂存的,程序是永存的;程序和进程的关系就像剧本和场幕。 进程的状态 ①创建 ②静止就绪 ③就绪 ④执行 ⑤阻塞 ⑥终止【⑦挂起】任何状态都可转换成挂起状态。 创建:1,申请空白PCB 2,填写PCB 3 阅读全文
摘要:
初稿:2017-11-19 21:28:20 并发概念 进程交替占用CPU执行片刻。 为什么要引入并发? (1)按时间片并发执行,即分时操作系统,满足多用户多任务。 (2)进程I/O或等待消息时,不使用CPU,让出CPU给其他进程使用,提高CPU的利用率。 如何并发? 每个进程都有PCB(进程控制块 阅读全文
摘要:
最坏时间复杂度,最佳时间复杂度,平均时间复杂度都是O(n^2) 相比冒泡排序的优势是 每次扫描只保存索引,并不交换,节省了时间。但是冒泡排序可以设置标志位提前结束排序,较于选择排序也节省了时间。 一次性放到终态位置:是 稳定性:稳定;前提是 if ( a[ j ] >= a[ k ] ) k = j 阅读全文
摘要:
初稿:2017-11-19 19:53:08 最坏时间复杂度:O(n^2)每一趟都发生交换,持续了array.len-1趟,每一趟的每个单元都发生交换。 最佳时间复杂度:O(n) 原数组是有序数组或基本有序,只扫描一趟。 平均时间复杂度是O(n^2) 稳定性:稳定 一次性放到终态位置: 是 适用:大 阅读全文
摘要:
初稿:2017-11-19 19:27:06 利用数组模拟的栈: 初始化 top = -1; 入栈 stack[++top] = elem ; 出栈 --top; 栈满 top == STACK_SIZE - 1; 栈空 top == -1 利用单链表模拟的栈: 参数只需要头结点即可,每个入栈元素 阅读全文
摘要:
初稿:2017-11-19 14:12:20 循环队列:本质是数组,采用循环方式,可以避免随着进队入队造成的空间浪费。 知识点:N个连续的存储单元,第一个单元编号是0,最后一个单元是N-1; i代表任意一个单元的编号,++i % N能实现i的值从0走到N-1再自动回到0,依次循环往复。 队空:rea 阅读全文
摘要:
初稿:2017-11-19 13:05:57 4种链表 链表和数组的区别 数组初始容量一旦确定,不能再改变,适合要处理的数据量已知的情况。 未知要处理的数据量使用数组,可能造成空间浪费或容量不足,虽然有动态数组可扩容,但是频繁扩容会使系统产生很大的开销。 链表容量不限,长度与元素个数相同,但是需要额 阅读全文