数据结构与算法
文章平均质量分 94
bruin_du
一生也在进取
展开
-
HashMap实现原理, 扩容机制,面试题和总结
1.讲下对HashMap的认识2.HashMap的一些参数3.为什么HashMap的长度必须是2的n次幂?4.HashMap 为什么在获取 hash 值时要进行位运算5.HashMap在JDK1.7和JDK1.8中有哪些不同? HashMap的底层实现6.HashMap的put方法的具体流程?7.HashMap 的 get 方法的具体流程?8.HashMap的扩容操作是怎么实现的?JDK1.7扩容JDK1.8扩容9.HashMap 在扩容时为什么通过位运算 (e.hash & oldCa原创 2022-08-13 17:37:02 · 23497 阅读 · 8 评论 -
第二届排序算法性能大赛(决赛:希尔排序,堆排序,快速排序,归并排序)
1️⃣参赛选手总览2️⃣特性总结3️⃣性能比较4️⃣全部源码1️⃣参赛选手总览前四组参赛选手:👉第一组:插入排序,希尔排序👉第二组:选择排序,堆排序👉第三组:冒泡排序,快速排序(划重点)👉第四组:归并排序前面几篇博客重点讲解了以下的排序的内容,以及优化过程和性能分析。到这里,有四位参赛选手最后进入总决赛。他们分别是希尔排序 堆排序 快速排序 归并排序。后面分析总结他们的特性,比较他们的性能。原创 2022-04-18 14:10:07 · 326 阅读 · 0 评论 -
【Java】归并排序(动图详解,性能分析,外排序实现的思想)
前三组参赛选手:👉第一组:插入排序,希尔排序👉第二组:选择排序,堆排序👉第三组:冒泡排序,快速排序(划重点)文章目录1️⃣必备排序常识2️⃣归并排序1.排序原理和过程2.递归实现写法一:每次归并开辟空间写法二:直接开辟一样大的空间3.非递归实现4.特性总结5.用归并排序实现外排序6.性能比较原创 2022-04-16 13:31:36 · 1049 阅读 · 0 评论 -
【Java】冒泡排序,快速排序(单路,双路,三路,挖坑,Hoare,快慢指针)
前两组参赛选手:👉第一组:插入排序,希尔排序👉第二组:选择排序,堆排序文章目录1️⃣必备排序常识2️⃣冒泡排序性能比较3️⃣快速排序1.单路快排性能分析,发现快排的缺陷优化方式一:选择合适的的基准值优化方式二:在小区间上使用插排优化方式三:使用二路快排2.二路快排3.三路快排4.挖坑法5.前后指针法(Hoare版本)6.快慢指针法7.非递归实现快排8.特性总结9.几种快排的总结原创 2022-04-14 08:17:43 · 413 阅读 · 1 评论 -
【Java】选择排序,堆排序(动图详解和性能比较)
上一组参赛选手:👉插入排序,希尔排序文章目录1️⃣必备排序常识2️⃣选择排序1.单路选择排序2.双路选择排序3.性能比较3️⃣堆排序性能比较1️⃣必备排序常识稳定性:在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求能在内存和硬盘(外部存储器)之间移动数据的排序。时间复杂度:一个排序算法在执行过原创 2022-04-11 08:57:06 · 605 阅读 · 2 评论 -
【Java】插入排序、希尔排序详解
1️⃣必备排序常识2️⃣插入排序1.直接插入排序2.优化后的插入排序3.折半插入排序4.性能比较3️⃣希尔排序性能比较1️⃣必备排序常识稳定性:在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求能在内存和硬盘(外部存储器)之间移动数据的排序。时间复杂度:一个排序算法在执行过程中所耗费的时间原创 2022-04-08 08:55:53 · 1011 阅读 · 0 评论 -
【java】泛型(与内部类的关系以及上下限通配符的使用)
泛型作为程序的守门员,能在编译期间就能检查发现问题,是一颗语法糖,能很大程度上帮助程序员写出正确高效的代码。文章目录1️⃣泛型的引入2️⃣泛型的基础使用1.语法2.使用3️⃣泛型方法,泛型接口1.泛型方法2.泛型接口4️⃣泛型和内部类5️⃣通配符1.使用通配符2.上限通配符3.下限通配符6️⃣类型擦除原创 2022-03-28 15:30:18 · 787 阅读 · 2 评论 -
【java】堆和优先级队列(PriorityQueue)
JDK中优先级队列就是基于堆的实现,所以率先学习堆。文章目录1️⃣堆(基于二叉树)1.概念和特点2.存储结构3.代码实现2️⃣优先级队列1.概念2.基本类型的使用3.自定义类型的使用原创 2022-03-10 20:06:15 · 863 阅读 · 1 评论 -
第一届排序算法性能大赛(上万字激烈解说)
写在前面最近学到了一些重要的排序,并且取巧地测了一下各种排序算法在不同的算法实现、优化以及递归和非递归下的运行速度,想着写篇文章记录学习成果,同时分享给大家。本文一共提及了以下几种常用到的排序,其他排序使用场景较少,便没有提及。 并且本文的全部代码实现均为通俗易懂的c语言,希望能够得到大家的认可和支持,如果觉得本文不错的话,欢迎三连哦。好了,接下来就是文章本章了。文章目录一、必备排序常识一、必备排序常识稳定性:在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,原创 2021-10-21 14:50:51 · 17166 阅读 · 32 评论