算法
没拖拉机的斯基
分享分享
展开
-
1T文件如何排序
1T文件如何排序先根据你的内存将大文件分段,比如:你的可用内存有1GB,那么就要将大文件分成1TB / 1GB = 1000段然后将每段依次读入内存,在内存中使用内部排序算法(例如快速排序,堆排序等)将其排好序,然后将其输出成各个分段文件,例如:file1,file2,…,file1000然后对这一千个分段文件的文件头(或文件指针),建立一颗败者树,用来选取当前最小的元素(或最大的元素,依你的排序要求而定)并将这最小的元素输出到最终的输出文件里。重复这一过程,直到1000个分段文件全部被输出。删转载 2022-03-20 19:05:19 · 805 阅读 · 0 评论 -
最近最少使用算法(LRU)
最近最少使用算法(LRU)LRU 英文全称 ”Least Recently Used“,即最近最少使用,属于典型的内存管理算法。LRU用通俗的话来说就是最近被频繁访问的数据会具备更高的留存,淘汰那些不常被访问的数据。力扣,146、LRU缓存机制运用你所掌握的数据结构,实现一个LRU(最近最少使用)缓存机制。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 k原创 2021-09-27 19:58:32 · 3849 阅读 · 0 评论 -
有依赖关系的任务安排--拓扑排序
假设某个软件工程项目包含n个功能模块。给定每个模块所需要的处理时间为 ti (1≤i≤n) 以及模块之间的依赖关系,比如模块5耗时0.3小时,且必须在模块1和3完成后方可开始处理。模块之间没有循环依赖关系。(1)若只能顺序处理这些模块,请设计算法给出一种可行的处理顺序来完成该软件工程项目。(2)若同一时间可以并行处理任意多的模块,请设计算法求出完成该项目的最短时间。(1)拓扑排序,将任务之间的依赖关系构成一个有向无环图,然后通过拓扑排序获取可行的处理顺序。算法实现(Python):def to.原创 2021-01-20 21:31:10 · 1533 阅读 · 0 评论 -
匈牙利算法
匈牙利算法(Hungarian Algorithm)是一种组合优化算法(combinatorial optimization algorithm),用于求解指派问题(assignment problem),算法时间复杂度为O(n^3)。Harold Kuhn发表于1955年,由于该算法基于两位匈牙利数学家的早期研究成果,所以被称作“匈牙利算法”。针对http://www.hungarianalgorithm.com/examplehungarianalgorithm.php的翻译内容,举例说明匈牙利算.原创 2021-01-20 21:22:50 · 2983 阅读 · 1 评论