![](https://img-blog.csdnimg.cn/direct/040df7a5157946f4971cc9df3e99b63f.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
⭐⭐数据结构预算法[JAVA]⭐⭐
文章平均质量分 53
数据结构与算法
会敲代码的小张
在这片海洋中,若无法向上攀游,就只有往下沉沦,是要前进或是溺死,就得看自己的选择,既然这么不甘心就变得更强 一《海贼王》
展开
-
【算法大家庭】动态规划算法
动态规划算法刨析,背包问题解决原创 2024-03-03 13:10:25 · 514 阅读 · 0 评论 -
【算法大家庭】分治算法
分治算法简单实现原创 2024-02-28 17:37:32 · 363 阅读 · 0 评论 -
你好!二叉排序树【JAVA】
二叉排序树: BST: (Binary Sort(Search) Tree),对于二叉排序树的任何一个非叶子节点:要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点原创 2023-12-20 12:39:22 · 469 阅读 · 0 评论 -
你好!赫夫曼树【JAVA】
赫夫曼树(Huffman Tree)又称最优二叉树,是一种带权路径长度最短的二叉树。它的构建主要用于数据压缩算法中,根据字符的出现频率来构建一个编码表,从而实现对数据的压缩和解压缩。给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wp)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(HuffmanTree),还有的书翻译为霍夫曼树。原创 2023-12-15 19:14:36 · 459 阅读 · 0 评论 -
你好!堆排序【JAVA】
堆排序是一种基于堆数据结构的排序算法,其核心思路是利用堆这种特殊的数据结构来对数据进行排序。堆是一种完全二叉树,并且满足父节点的值大于等于(或小于等于)其子节点的值。原创 2023-12-11 22:13:36 · 468 阅读 · 0 评论 -
你好!线索化叉树【JAVA】
1.线索化叉树(Threaded Binary Tree)是一种二叉树,其节点除了保存左右子节点的指针外,还可以保存指向前驱和后继节点的指针。2.n个结点的二叉链表中含有n+1 【公式2n-(n-1)-n+1】个空指针域。利用二叉链表中的空指针域,存放指向该结点在某种遍历次序下的前驱和后继结点的指针(这种附加的指针称为"线索")。3.线索化叉树可以分为前序线索化二叉树、中序线索化二叉树和后序线索化二叉树三种。原创 2023-12-09 18:22:40 · 463 阅读 · 0 评论 -
你好!二叉树【JAVA】
由节点组成,并且每个节点最多有两个子节点,分别称为左子节点和右子节点,不存在子节点的节点称为叶子节点。二叉树常见的遍历方式有前序遍历、中序遍历以及后序遍历。前序遍历先遍历根节点,然后遍历左子树和右子树;中序遍历先遍历左子树,然后遍历根节点和右子树;后序遍历先遍历左子树和右子树,最后遍历根节点。原创 2023-12-07 21:25:12 · 1135 阅读 · 0 评论 -
你好!哈希表【JAVA】
哈希表是一种数据结构,它能够实现快速的查找操作。它基本上是由一个数组和一个哈希函数组成的。哈希函数将每个键映射到数组的特定索引位置,这个位置被称为哈希码。当我们需要查找一个键时,哈希函数会计算其哈希码并立即返回结果,因此我们可以直接访问该索引位置并读取或修改该键的值,从而实现快速查找。这种查找方式的时间复杂度通常为O(1),即常数时间,这是哈希表的优点之一。原创 2023-12-05 23:00:36 · 644 阅读 · 0 评论 -
你好!斐波那契查找【JAVA】
1.有幸遇见1.有幸遇见2.原理讲解斐波那契(黄金分割法)原理:斐波那契查找原理与前两种相似,仅仅改变了中间结点(mid)的位置, mid不再是中间或插值得到,而是位于黄金分割点附近,即(F代表斐波那契数列)。注:顺序表长度n不一定刚好等于F[K]-1,所以需要将原来的顺序表长度n增加至F[k]-1。原创 2023-12-04 21:00:58 · 495 阅读 · 0 评论 -
你好!二分查找【JAVA】
二分查找又称折半查找,是一种在有序数组中查找特定元素的算法。二分查找的基本思想是:通过不断地二分数组的中间元素,缩小查找区间,直到找到目标元素或者确定目标元素不存在为止。原创 2023-12-02 19:24:25 · 553 阅读 · 0 评论 -
你好!插值查找【JAVA】
插值查找与二分法法查找基本相似,只是运用了一个小算法,自适应找中间值middle。原创 2023-12-01 18:20:35 · 756 阅读 · 0 评论 -
⭐链表⭐【JAVA】
1.链表是以节点的方式来存储的,是链式存储2.每个节点包含data域,next域(指向下一个节点)3.链表的各个节点不一定是连续的存储4.带头节点链表和不带头结点链表5.在内存中的存储结构如下图:注意:链表的各个节点不一 定是连续存原创 2023-10-29 09:13:42 · 44 阅读 · 0 评论 -
你好!线性查找【JAVA】
线性查找原创 2023-11-30 20:17:26 · 572 阅读 · 0 评论 -
我叫:基数排序【JAVA】
基数排序(radix sort)属于“分配式排序” (distribution sort),又称“桶子法” (bucket sort)或bin sort,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,是‘桶排序’的扩展原创 2023-11-29 20:16:19 · 557 阅读 · 0 评论 -
我叫:归并排序【JAVA】
归并。分而治之原创 2023-11-27 19:58:10 · 646 阅读 · 0 评论 -
我叫:快速排序【JAVA】
然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。通过一趟排序将要排序的数据分割成独立的。快速排序(Quicksort)是对。5.心惊胆战的执行一下。另外一部分的所有数据。原创 2023-11-23 20:35:34 · 614 阅读 · 0 评论 -
我叫:希尔排序【JAVA】
令人惊叹希尔算法!!!!原创 2023-11-25 20:03:24 · 618 阅读 · 0 评论 -
我叫:插入排序【JAVA】
插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。原创 2023-11-20 21:32:56 · 227 阅读 · 0 评论 -
我叫:选择排序【JAVA】
在未排序序列中找到最小元素,存放到排序序列的起始位置;从剩余未排序元素中继续寻找最小元素,放到已排序序列的末尾;重复第二步,直到所有元素均排序完毕。原创 2023-11-19 20:02:07 · 1023 阅读 · 0 评论 -
我叫:冒泡排序【JAVA】
我们举一个具体的案例来说明冒泡法。我们将五个无序的数:3,9,-1,10,20使用冒泡排序法将其排成一个从小到大的有序数列。每一排序的次数住逐新的减少如果我们发现在某趟排序中,没有发生一次交换,可以提前结束冒泡排序。每一排序的次数住逐新的减少如果我们发现在某趟排序中,没有发生一次交换,可以提前结束冒泡排序。一共进行数组的大小-1次大的循环。每一趟排序的次数在逐渐的减少。1.什么是冒泡排序?原创 2023-11-18 20:05:45 · 406 阅读 · 0 评论 -
算法的时间复杂度!!!很懵逼吧~
一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用(n)表示,若有某个辅助函数f(n),使得当n趋近干无穷大时T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。称O(f(n))为算法的渐进时间复杂度,简称时间复杂度。原创 2023-11-14 20:30:21 · 237 阅读 · 0 评论 -
八皇后问题
通过一维数组表示arr[i]=val,下标 i+1 表示第几行,val表示第i+1行所对应的列。原创 2023-11-13 19:26:21 · 77 阅读 · 0 评论 -
稀疏数组
当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模原创 2023-10-27 13:38:52 · 38 阅读 · 1 评论