首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构与算法
递归茶馆
创建于2022-05-08
订阅专栏
记录数据结构与算法代码实现
等 1 人订阅
共11篇文章
创建于2022-05-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【数据结构与算法】十大经典排序算法-归并排序
基本思想 分解阶段: 将待排序数组分成两个相等或近似相等的子数组,不断将问题规模缩小。 解决阶段: 递归地对两个子数组进行排序,直到子数组的长度为1(即已有序)。 合并阶段: 将排好序的子数组合并成一
【数据结构与算法】十大经典排序算法-堆排序
基本思想 构建初始堆:将待排序数组视为一个完全二叉树,从最后一个非叶子节点开始,逐步将树调整为大顶堆(或小顶堆)。 排序过程:将堆顶元素与最后一个叶子节点交换,然后将堆大小减一,继续调整堆结构,使其重
【数据结构与算法】十大经典排序算法-选择排序
基本思想 将数组分为已排序区和未排序区。 在未排序区中找到最小(或最大)的元素。 将找到的最小(或最大)元素与未排序区的第一个元素交换位置,将该元素放入已排序区。 重复步骤 2 和 3,直到未排序区为
【数据结构与算法】十大经典排序算法-希尔排序
基本思想 希尔排序将数组分成若干个子序列,每个子序列包含间隔为 h 的元素,称为 h-子序列。 对每个 h-子序列应用插入排序,以实现局部排序。 不断缩小 h 的值,重复步骤 2,直到 h 为 1。此
【数据结构与算法】十大经典排序算法-插入排序
基本思想 从第二个元素开始,依次将当前元素插入到已排好序的有序序列中,直到最后一个元素。 插入当前元素时,从后往前遍历已排好序的有序序列,找到当前元素在有序序列中的位置,并将其插入到该位置。 重复执行
【数据结构与算法】十大经典排序算法-快速排序
基本思想 选择一个基准元素(pivot)作为参考点。 将所有比基准元素小的元素移到基准元素的左边,将所有比基准元素大的元素移到基准元素的右边。此过程称为分区(partitioning)。 对基准元素左
【数据结构与算法】十大经典排序算法-冒泡排序
基本思想 从序列的第一个元素开始,比较相邻的两个元素大小,如果它们的顺序不正确,则交换它们的位置。 继续向后遍历序列,对每一对相邻元素执行步骤1,直到序列的末尾。 重复上述过程,但是每次比较的元素个数
【数据结构】队列及循环队列
队列是一种只允许在一端进行插入,另一端进行删除先进先出的线性表 和栈有相似之处(只许在一端插入删除,先进后出),可以进行对比的理解和记忆 关于队列来说,一般有以下规定 队尾(rear): 只能从队尾添
【数据结构】栈的代码实现
栈是一种特殊的线性表, 只能在一端进行插入或者删除操作 往栈中添加元素的操作,一般叫做push,入栈 从栈中移除元素的操作,一般叫做pop,出栈(只能移除栈顶的元素) 成员变量无非就是size和一个e
【数据结构】链表详解(图文)
单链表 链表是一种链式存储的线性表, 所有元素的内存地址不一定是连续的 分类 单链表 双向链表(java.util.LinkedList) 循环链表 静态链表(了解) ..... 接口设计 创建Lin
【数据结构】动态数组
数组是一种顺序存储的线性表,所有元素的内存地址是连续的 在很多编程语言中,数组都有一个致命的缺点:无法动态修改容量 接口设计 创建ArrayList类,创建size成员变量来管理数组中元素的个数,创建