- 博客(4)
- 收藏
- 关注
原创 优先级队列(PriorityQueue)和堆
前面介绍过队列,是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有,一般出队列时,可能需要优先级高的元素先出队列,该中场景下,使用队列显然不合适,比如:在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话;初中那会班主任排座位时可能会让成绩好的同学先挑座位。在这种情况下,数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是。
2023-05-31 15:15:32 2249 11
原创 七大经典排序算法总结【详解】
数据量规模较小,考虑插入或选择。当元素分布有序时插入将大大减少比较和移动记录的次数,如果不要求稳定性,可以使用选择,效率略高于插入;数据量规模中等,使用希尔排序;数据量规模较大,考虑堆排序(元素分布接近正序或逆序)、快速排序(元素分布随机)和归并排序(稳定性);一般来说不使用冒泡。
2023-05-21 16:27:15 8017 4
原创 Comparable和Comparator接口的区别【详解】
Comparator属于外部比较器,是java.util包下的,Comparator被称为外部比较器,如果我们需要对某个类进行排序,我们可以建立一个“该类的比较器”来进行排序。用Comparator 的好处是比较灵活,不需要修改源代码, 而是另外实现一个比较器, 当某个自定义的对象需要作比较的时候,把比较器和对象一起传递过去就可以比大小了。这里的比较顺序是按从小到大排序的,如果我们想按从大到小的顺序排可以将返回的“-1”改为“1”,将“1”改为“-1”或者将this.name和o.name调换位置即可。
2023-05-14 01:09:59 468 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人