
数据结构与算法
文章平均质量分 79
计算机基本功,数据结构与算法
次时代小羊
千里之行,始于足下!
展开
-
面试算法之如何判断链表有环
一个单向链表,使用程序来判断链表中是否存在环结构。原创 2021-04-21 21:43:57 · 388 阅读 · 0 评论 -
排序算法之计数排序
计数排序是一种利用数组下标来确定元素的正确位置的排序算法。原创 2021-04-18 17:05:26 · 427 阅读 · 1 评论 -
排序算法之快速排序
快速排序也属于交换排序,通过元素直接的比较和交换位置来达到排序的目的。快速排序的思想是:在每一轮挑选一个基准元素,并让其他比它大的元素移动到数的一边,比它小的元素移动到数列的另一边,从而把数列拆解成两个部分。这种思想就叫做分治法。原创 2021-04-17 15:56:22 · 427 阅读 · 0 评论 -
排序算法之聊聊你所不知道的冒泡排序
冒泡排序是一种基础的交换排序,其思想是,把相邻的元素两两比较,当一个元素大于右侧相邻的元素时,交换它们的位置:当一个元素小于或等于右侧的元素时,位置不变。冒泡排序是一种稳定排序,值相等的元素并不会打乱原有的顺序,由于该排序算法的每一轮都要遍历元素,总共遍历(元素数量 - 1)轮,所以平均时间复杂度是O(n^2)。原创 2021-03-27 11:05:39 · 599 阅读 · 0 评论 -
数据结构之什么是二叉堆?
二叉堆本质上是一种完全二叉树。原创 2021-03-06 23:16:40 · 179 阅读 · 0 评论 -
数据结构之什么是树?
数据结构中的树和现实生活中的树虽然不是同一种事物,但是却有着相同的特点。数据结构中的树,其实就是一种和现实生活中的树有着相似结构的数据逻辑结构,从同一个“根”衍生出许多“枝干”,最后衍生出更多的“叶子”。原创 2021-02-28 17:27:30 · 1594 阅读 · 5 评论 -
数据结构之什么是链表?
链表(linked list)是一种在物理上非连续、非顺序的数据结构,由若干个节点(node)所组成。链表分为单向链表和双向链表。单向链表的每一个节点包含两部分,一部分是存放数据的变量data,另一部分是指向下一个节点的指针next。双向链表比单向链表复杂一些,它的每一个节点除了拥有data和next指针,还拥有指向前置节点的prev指针。如果说数组在内存中的存储方式为顺序存储,那么链表在内存在的存储方式则是随机存储。原创 2021-02-24 22:28:15 · 2636 阅读 · 0 评论 -
数据结构之什么是数组?
数组对应的英文是array,是有限个相同类型的变量所组成的有序集合,数组中的每一个变量被称为元素。数组是最为简单、最为常用的数据结构。原创 2021-02-23 20:31:48 · 1375 阅读 · 3 评论 -
数据结构与算法——判断数组是否有序(改进版)
上一次写了数据结构与算法中的排序算法辅助工具类和三种基本排序,详情见数据结构与算法——排序算法辅助工具编写与三种基本排序算法(Java实现)。但是后来在学习其他算法的时候,发现其中的判断数组是否有序的方法中是有BUG的,因为它只能判断数组在顺序的情况下是否有序,而无法判断数组在倒序的情况下是否有序,于是我在之前的方法上进行了方法的增强和修改。原创 2020-02-19 20:26:48 · 1464 阅读 · 0 评论 -
数据结构与算法——希尔排序(Java实现)
希尔排序是插入排序的一个变种排序算法,由D.L.Shell在1959年提出,所以命名为希尔排序。插入排序是一个时间复杂度为O(n^2)级别的不稳定的排序算法,之所以说它的不稳定的,是因为插入排序在处理近乎有序的数组的时候,排序效率会非常快,而在处理完全无序的数组的时候,排序效率则为N平方级别。希尔排序就是为了解决插入排序在处理完全无序的数组时效率过慢而诞生的优秀算法。希尔排序是思想是,在插入排序的基础上,对插入数组的索引的间隔进行扩大,这个间隔大小为 h。h的最小值为1,最大值为h*3+1小于数组长原创 2020-02-18 16:58:06 · 243 阅读 · 0 评论 -
数据结构——栈与队列(Java实现)
栈是一种特殊的线性表结构,数据在栈中,只能从栈顶进入,也只能从栈顶弹出,具有先进后出的特点。队列也是一种特殊的线性表结构,数据在队列中,只能从队列的最后存入队列,数据移出只能从队列的最前面取出,具有先进先出,后进后出的特点。原创 2020-02-14 15:19:23 · 266 阅读 · 0 评论 -
数据结构与算法-排序算法辅助工具编写与三种基本排序算法(Java实现)
1. 随机生成一个整形数组 2. 生成一个近乎有序的整形数组 3. 判断一个数组是否有序,有序返回true,无序返回false 4. 拷贝一个整形数组 5. 交换数组中的两个索引的位置 6. 打印数组原创 2020-01-11 20:27:22 · 433 阅读 · 0 评论