···
首页
···
开发工具
···
开发入门教程
···
网址导航
···
搜索
Ctrl K
链表
选择排序
选择排序,今天我们来聊一下同样比较基础的排序算法-选择排序。选择排序是一种非常直观的排序算法,复杂度为 O(n2)O(n^2)O(n2),和前面介绍的两种算法一样不需要额外的空间。,1. 选择排序算法原理,选择排序的思路是最容易...
反转链表
1. 前言,相对于各种复杂的二叉树(例如平衡二叉树、完美二叉树),单链表的数据结构简单,只涉及到一个值和指针的操作,所以面试中经常会出现需要手写单链表的算法题。反转链表应该是单链表中考察频率最高的题目,题目看起来...
1.7 字典排序
1.7 字典排序,问题,你想创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序。,解决方案,为了能控制一个字典中元素的顺序,你可以使用 collections 模块中的 OrderedDict 类。,在迭代操作的时候它会保持...
链表成环
1. 前言,上个章节介绍了单链表反转,单链表还存在一些经典的问题,例如找到链表的倒数第 K 个节点,或者在原始链表上进行快速排序,或者是判断一个单链表是否成环,这些问题看似没有共同性,但是都可以使用快慢指针(Fast-S...
链表
1. 前言,我们今天要通过了解链表的原理来掌握链表这个重要的数据结构,随后用我们了解到的链表的知识来重新认识一下我们每天都要接触的最常见的链表 java.util.LinkedList 类。,2. 数组的缺陷,数组作为我们最常见的通...
Redis缓存过期
1. 前言,Redis 相对于传统的关系型数据库(例如 MySQL )而言,还具有设置过期时间的特性,在项目实战中,我们经常关心的三元组是 {key,value,expire_time}。这里的过期时间(expire_time)是的具体执行方式,涉及到 Redis 的...
插入排序
插入排序,上节课我们学习了一个经典的排序算法—冒泡排序,本节我们来聊一下基础排序中的插入排序算法。,1. 插入排序算法原理,插入排序的基本思想是: 将整个数组 nums 分为有序和无序的两个部分 。前者在左边,后者在右边...
Netty 核心组件
Netty 核心组件,1. 前言,本节我们主要从整体上了解 Netty 有哪些核心组件,很多同学学习完 Netty 虽然会使用,但是只知道如何自定义 Handler 而已,根本不清楚 Netty 有哪些核心的组件。,本节的主要目的是,从整体上概括 ...
Java 中基于数组和链表的常用类
1. 前言,通过前面的学习,我们其实对 ArrayList 和 LinkedList 已经很熟悉了,他们虽然都是继承自 List,但是前者是基于数组实现的,后者是基于链表实现的,结合各自的特点我们会在前半节对比总结他们的特点和用法。,HashM...