![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构/算法
文章平均质量分 70
Swaggie
Lead by Example
展开
-
数据结构笔记【基础篇】——二分查找
二分查找二分查找二分查找针对的是一个有序的数据集合,查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。二分查找的递归与非递归实现最简单的情况就是有序数组中不存在重复元素public int bsearch(int[] a, int n, int value) { int low = 0; int high = n - 1; while (low <= high) { in原创 2021-04-02 10:12:25 · 137 阅读 · 0 评论 -
数据结构笔记【基础篇】——排序
排序排序如何分析一个排序算法排序算法的执行效率最好情况、最坏情况、平均情况时间复杂度时间复杂度的系数、常数 、低阶比较次数和交换(或移动)次数排序算法的内存消耗原地排序算法,就是特指空间复杂度是 O(1) 的排序算法。排序算法的稳定性这个概念是说,如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变。冒泡排序// 冒泡排序,a表示数组,n表示数组大小public void bubbleSor原创 2021-04-02 10:11:46 · 275 阅读 · 0 评论 -
数据结构笔记【基础篇】——栈、队列、递归
栈 栈 内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构。 内存空间在逻辑上分为三部分:代码区、静态数据区和动态数据区,动态数据区又分为栈区和堆区。 代码区:存储方法体的二进制代码。高级调度(作业调度)、中级调度(内存调度)、低级调度(进程调度)控制代码区执行代码的切换。 静态数据区:存储全局变量、静态变量、常量,常量包括final修饰的常量和String常量。系统自动分配和原创 2021-04-02 10:11:08 · 194 阅读 · 0 评论 -
数据结构笔记【基础篇】——链表
链表 链表 缓存淘汰策略 常见的策略有三种:先进先出策略 FIFO(First In,First Out)、最少使用策略 LFU(Least Frequently Used)、最近最少使用策略 LRU(Least Recently Used)。 单链表、双向链表和循环链表 单链表 双向链表 循环链表 如果你深入研究 Linked原创 2021-04-02 10:10:26 · 93 阅读 · 0 评论 -
数据结构笔记【基础篇】——数组
数组 数组 (Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表 非线性表 数组是适合查找操作,但是查找的时间复杂度并不为 O(1)。即便是排好序的数组,你用二分查找,时间复杂度也是 O(logn)。所以,正确的表述应该是,数组支持随机访问,根据下标随机访问的时间复杂度为 O(1)。 JVM 标记清除垃圾回收算法的核心思想原创 2021-04-02 10:09:52 · 88 阅读 · 0 评论 -
数据结构笔记【入门篇】——引言
数据结构的概念广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。数据结构是为算法服务的,算法要作用在特定的数据结构之上。总体框架如下复杂度分析事后统计法测试结果非常依赖测试环境测试结果受数据规模的影响很大大O复杂度表示法所有代码的执行时间 T(n) 与每行代码的执行次数 n 成正比大 O 时间复杂度实际上并不具体表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势,所以,也叫作渐进时间复杂度(asymptotic ti原创 2021-04-02 10:09:06 · 98 阅读 · 0 评论