摘要:
排序(1) @(数据结构与算法) 基本排序算法的时间复杂度 如何分析排序算法 时间复杂度,空间复杂度,稳定性 冒泡排序 Java 代码如下: 时间复杂度$O(n^2)$,空间复杂度 $O(1)$ 稳定 插入排序 Java 代码 时间复杂度$O(n^2)$,空间复杂度 $O(1)$ 稳定 选择排序 j 阅读全文
摘要:
栈 @(数据结构与算法) 从操作特性看,栈是一种「操作受限制」的线性表,只允许在一端插入或删除数据。 从功能上看,数组或者链表确实可以替代栈,但特定的数据结构是对特定场景的抽象,而且,数组或链表暴露了太多的操作接口,操作上的确灵活自由,但使用时就比较不可控,自然也就更容易出错。 栈主要包括两个操作, 阅读全文
摘要:
链表(下) @(数据结构与算法) 链表代码书写技巧 理解指针或引用的含义 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针。代码: 指 p 结点的 next 指针存储了 q 结点的内存地址。代码: 指 p 结点的 next 指针存储了 p 结点的下下一个结点的内存地址。 警惕指针丢失和内存 阅读全文
摘要:
链表(上) @(数据结构与算法) 链表的经典应用场景: LRU 缓存淘汰算法。 缓存是一种提高数据读取性能的计数,如常见的:CPU 缓存,数据库缓存,浏览器缓存等。 缓存的大小有限,当缓存被用满时,那些数据应该被清理出去,那些数据应该保留,这就需要缓存淘汰策略算法来决定。常见得策略有三种:先进先出策 阅读全文
摘要:
数组 @(数据结构与算法) 数组 一种线性表数据结构。它用一组连续的内存管空间,开存储一组具有相同类型的数据。 线性表:数据排成一条线一样的结构。 非线性表: 数据之间不是简单的前后关系。 数组的特性 随机访问 。随机访问的缺点:如果要想在数组中删除、插入一个数据,为了保证连续性,就需要做大量的数据 阅读全文
摘要:
数据分析统计学基础(1) @(统计学) 描述性统计分析 1 . 直方图 频数分布直方图,长方形的宽度表示数据范围的间隔,高度表示在给定间隔内的数据。 频率分布直方图,长方形的宽度表示数据范围的间隔,高度表示频率与组距的比值。 2 . 数据的集中趋势 指一组数据向某一中心值靠拢的程度。常见指标有平均数 阅读全文
摘要:
复杂度分析(下) @(数据结构与算法) 复杂度除了大 O 表示法,还有 最好时间复杂度 , 最坏时间复杂度 , 平均时间复杂度 , 均摊时间复杂度 。 c //n 表示数组 array 的长度 int find(int[] array,int n,int x){ int i = 0; int pos 阅读全文
摘要:
复杂度分析(上) @(数据结构与算法) 1. 数据结构与算法本质上是解决程序 运行速度快 和 存储空间省 的问题,所以需要通过一个指标,即 时间、空间复杂度 来衡量这个问题 2. 为什么需要复杂度分析 程序测试运行结果会受到测试环境的硬件影响 测试结果受数据规模的影响很大 3. 假设每行代码的运行时 阅读全文
摘要:
SQL 经典习题解答(7) 35、查询所有学生的课程及分数情况; 程序运行结果: 36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数 程序运行结果: 37、查询不及格的课程 程序运行结果: 39、求每门课程的学生人数 详情: 用于计算每门课程的学习人数,再与表 course 连接得到课程名 阅读全文
摘要:
SQL 经典习题解答(6) 23、统计各科成绩各分数段人数:课程编号,课程名称,[100 85],[85 70],[70 60],[0 60]及所占百分比 sql SELECT t1. , t2.all_num, CONCAT( ROUND( t1.num / t2.all_num 100, 2 ) 阅读全文