摘要:
最坏时间复杂度,最佳时间复杂度,平均时间复杂度都是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种链表 链表和数组的区别 数组初始容量一旦确定,不能再改变,适合要处理的数据量已知的情况。 未知要处理的数据量使用数组,可能造成空间浪费或容量不足,虽然有动态数组可扩容,但是频繁扩容会使系统产生很大的开销。 链表容量不限,长度与元素个数相同,但是需要额 阅读全文