![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 70
Money、坤
人间烟火 各有遗憾 今天比昨天好就有希望
展开
-
【操作系统】什么是死锁,以及死锁产生的原因和必要条件
所谓死锁,就是在两个或多个并发进程中,如果每个进程持有某种资源而又都等待着别的进程释放它或它们现在保持着的资源,否则就不能向前推进,此时每个进程都占用了一定的资源但又都不能向前推进,称这一组进程产生了死锁。举个例子,如果此时有一个线程A持有a锁,按照先锁a再获得锁b的的顺序获得锁,而在此同时又有另外一个线程B,按照先锁b再锁a的顺序获得锁。原创 2022-09-07 23:24:12 · 7203 阅读 · 0 评论 -
【数据结构】优先级队列的实际应用之TopK问题
自定义一个降序的比较器,创建优先级队列时传入比较器}}/***升序的比较器Students1=newStudent("胡歌",30);Students2=newStudent("江江",24);Students3=newStudent("浩存",20);//1.比较器写法Queuequeue=newPriorityQueue(newStudentDesc());.........原创 2022-07-28 11:46:34 · 172 阅读 · 0 评论 -
【排序算法】快速排序的详解
1.基准值默认选择左侧区间的第一个元素,也可以是其他位置元素;2.在快速排序中,当数组元素小于等于15时,进行插入排序优化算法;3.区间的定义一定要明确,边界值的判断要清晰。原创 2022-03-23 23:59:58 · 875 阅读 · 0 评论 -
【算法】七大排序详解(下篇)
简单总结一下,在长度为50000的数组,数值在【0~整形最大值】的数组上进行排序测试,O(N^2)的算法和O(NlogN)算法性能上确实是差了很多,包括优化后的排序算法也比优化前的性能好了很多,故在某些场景下,选择合适的排序算法才是成功之道。排序思路:又称缩小增量排序,给定一个数值gap,将原数组按照gap分为若干个组,组内再进行插入排序,直到gap=1,整个数组已经被调整的接近有序,最后再全集和上进行一次插入排序即可;二是合而为整,就是将拆分的数组不断合并,同时合并的过程中将数组有序化。原创 2022-07-30 16:37:35 · 189 阅读 · 0 评论 -
【算法】七大排序详解(上篇)
排序思路每次从无序区间选择一个数插入到合适的位置,插入过程类似于扑克牌的码牌过程,插入排序虽然是O(N^2)的排序算法,但是在近乎有序的数据集上,插入排序的性能甚至优于NlogN的排序算法,所以,插入排序也作为其他高阶排序算法的优化手段;排序思路遍历原数组,依次比较前后元素的大小,如果后一元素比前一元素小,则交换它们位置,否则继续向后遍历,直至整个数组有序;排序思路将待排序数组分为有序区间和无序区间,每次从无序区间选择一个元素添加到有序区间指定位置,直至整个数组有序;时间复杂度O(n^2)......原创 2022-07-29 21:17:08 · 199 阅读 · 0 评论