一篇文章了解常用排序算法 2024-06-18 算法, java, 排序算法, 数据结构, 开发语言 144人 已看 排序文章目录排序直接(插入)排序InsertSort思想实现方法:希尔排序ShellSort(可过OJ)思想预排序gap的作用整体代码选择排序SelectSort思想完整代码堆排序HeapSort(可过OJ)思想大根堆向下调整完整代码冒泡排序BubbleSort快速排序(快排)QuickSort缺陷三数取中法,规避缺陷情况快排的实现方式双(左右)指针法挖坑法前后指针法快排的非递归方式归并排序(外排序)MergeSort (像后序遍历)(可过OJ)归并排序的内存中(内排序)实现方法归并排序内排序的非递归归并
数据结构_优先级队列(堆) 2024-06-21 算法, 数据结构 123人 已看 1、优先级队列出队顺序与入队顺序无关,而与优先级相关。2、堆将所有元素按完全二叉树的顺序存储方式存储在数组中。3、堆分为大根堆和小根堆。4、PriorityQueue 中放置的元素必须能够比较大小、不能插入 null 对象、没有容量限制。5、PriorityQueue 默认情况下是小根堆,大根堆需要自行提供比较器。
【C++高阶】探索STL的瑰宝 map与set:高效数据结构的奥秘与技巧 2024-06-21 c++, windows, 数据结构, 开发语言 152人 已看 在编程的世界里,数据结构的选择往往决定了程序的效率和稳定性。而在C++的STL(Standard Template Library)库中,map和set无疑是两颗璀璨的瑰宝。它们以其独特的数据存储和检索方式,为我们提供了高效且有序的键值对存储和集合管理方案
【CT】LeetCode手撕—160. 相交链表 2024-06-20 算法, 链表, leetcode, 职场和发展, 数据结构 151人 已看 【代码】【CT】LeetCode手撕—160. 相交链表。
数据结构_绪论 2024-06-21 算法, java, 数据结构, 开发语言 132人 已看 描述操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应出错信息.若初始条件为空,则省略。在使用高级程序设计语言编写程序时,必须对程序中出现的每个变量,常量或表达式,明确说明他们所属的。数据元素不是孤立存在的,他们之间存在着某种关系,数据元素相互之间的关系称之为。而另一些常用的数据结构,如栈,队列,树,图等,不能直接用数据类型来表示。对象 集合N={0,(-/+)1,(-/+)2,(-/+)3...}其中D是数据对象,S是D上的关系集,P是对D的基本操作。
Map 数据结构 2024-06-20 node.js, 前端, vue.js, 数据结构, javascript 139人 已看 Set 是一种叫【字典(是一些元素的集合,以 [ 键,值 ] 的形式储存)】的数据结构。keys() 返回键名。values() 返回键值。使用运算扩展符 【...】
八大经典排序算法 2024-06-20 算法, java, 数据结构, 开发语言 119人 已看 深入探讨了八大排序算法——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、以及我们刚刚详析的计数排序之后,我们不仅掌握了一系列解决排序问题的有效策略,更深刻理解了算法设计背后的逻辑与权衡。每种算法,如同八音盒中的音符,各有其独特的旋律与应用场景,它们共同编织了计算机科学领域中关于“排序”这一基本问题的华丽乐章。数据结构-堆(带图)详解-CSDN博客。栈(Stack)是一种基本的数据结构,其特点是只允许在同一端进行插入和删除操作,这一端被称为栈顶。
java算法:插入排序 2024-06-17 算法, java, 数据结构, 排序算法, 开发语言 128人 已看 在传统的插入排序中,为了将当前元素插入到正确的位置,需要将较大的元素逐个向后移动,直到找到合适的位置。然而,我们可以通过将较大的元素向右移动一位,并将当前元素直接插入到正确位置来减少交换操作。然而,在处理大规模数据时,插入排序的性能可能不如其他更高效的排序算法。插入排序是一种简单直观的排序算法,它的工作原理是将待排序的数组分为已排序和未排序两部分,逐步将未排序部分的元素插入到已排序部分中的正确位置,直到整个数组有序。在传统的插入排序中,为了找到当前元素的正确插入位置,需要逐个比较已排序部分中的元素。
深入解析B树:数据结构、存储结构与算法优势 2024-06-14 算法, 数据结构, b树 124人 已看 B树是一种自平衡的树数据结构,专门用于保持已排序的数据,并允许以对数时间复杂度进行搜索、顺序访问、插入和删除。每个节点最多有 M 个子节点。每个节点最少有 [M/2] 个子节点。根节点至少有两个子节点,除非树只有一个节点。所有叶子节点都在同一层次。一个节点的键值个数为 k,满足 [M/2] − 1 ≤ k ≤ M − 1。
代码随想录算法训练营day44 2024-06-13 算法, 图论, leetcode, 动态规划, 数据结构 148人 已看 递推公式,这里就要详细思考一下,因为本题的dp和之前求的方法数等不一样,先装物品i,如果能先装进去,则j-coin[i]的需要最少个数为dp[j-coin[i]],故此时dp[j]=dp[j-coin[i]]+1,由于本题求的是最少个数,故应该使用min;初始化,dp[0]表示空串能否由字典中元素组成,但本题中s非空,故没有空串的情况,根据递推公式,dp[0]必须为true,否则后面全为false,其他值初始化为false;对本题,dp五部曲:dp数组,dp[j]表示容量为j的背包能装的最大价值;
C语言 | Leetcode C语言题解之第144题二叉树的前序遍历 2024-06-11 算法, c语言, leetcode, 数据结构, 开发语言 117人 已看 C语言 | Leetcode C语言题解之第144题二叉树的前序遍历
c++题目_第K小的数(进阶) 2024-06-15 算法, 数据结构 92人 已看 每组数据第一行包含三个正整数 n,m,k(1≤n,m≤100000,1≤k≤n×m)n,m,k(1≤n,m≤100000,1≤k≤n×m)。,ana1,a2,…请在 n×mn×m 个 ai+bj(1≤i≤n,1≤j≤m)ai+bj(1≤i≤n,1≤j≤m) 中,找到第 kk 小的数(不去重)。,an(1≤ai≤108)a1,a2,…,bm(1≤bi≤108)b1,b2,…第一行包含一个正整数 T(1≤T≤10)T(1≤T≤10),表示测试数据的组数。其他语言 512MB。
LinkedList与链表 2024-06-11 链表, list, 数据结构 158人 已看 链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如 哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。在Java的集合框架库中LinkedList底层实现就是无头双向循环链表。
一篇文章了解常用排序算法 2024-06-18 算法, java, 排序算法, 数据结构, 开发语言 131人 已看 排序文章目录排序直接(插入)排序InsertSort思想实现方法:希尔排序ShellSort(可过OJ)思想预排序gap的作用整体代码选择排序SelectSort思想完整代码堆排序HeapSort(可过OJ)思想大根堆向下调整完整代码冒泡排序BubbleSort快速排序(快排)QuickSort缺陷三数取中法,规避缺陷情况快排的实现方式双(左右)指针法挖坑法前后指针法快排的非递归方式归并排序(外排序)MergeSort (像后序遍历)(可过OJ)归并排序的内存中(内排序)实现方法归并排序内排序的非递归归并
找单身狗2 2024-06-18 算法, java, 数据结构, 排序算法, 开发语言 123人 已看 这里是最后一位进行比较,按位异或是相同为0,相异为1,最后一位从上图看出是1,说明这两个数不一样,就可以让这两个数被分开。接下来的问题是怎么把5和6分开来?3.根据什么标准分成两组?1.怎么把它分成两组?2.为什么分成两组?