要么改变世界,要么适应世界
脚本 效率 教程 C 分享 工具 学习 命令行 HTML基础 CSS基础 JavaScript基础 Vue 动态规划 排序 分治 java 并查集 Shell 字符串 进程通信 单例模式 静态代理 动态代理 模板方法 观察者模式 高精度 阶乘 深度优先 递归 BFS 最大流 C语言课程设计 操作系课设 数据库 MySql Git SpringBoot 缓存 移位运算 与运算 或运算 位操作 快速排序 二分查找 LIS 单调递减栈 归并排序 链表 康托展开 映射 Jsp Cookie 质数 筛选法 凸包 最小生成树 贪心算法 最短路 多线程 KMP DFS 匈牙利算法 KM AC自动机 axios 框架 UI 算法 自动机 C++ 图论 ST表 模拟 总结 OpenCV 图像 Echarts 日历热力图 线性回归 多项式回归 泰勒展开 python NumPy 逻辑回归 MNIST Nuxt 前端 include漏洞 文件上传 SSRF 密码学 CBC fastjson RCE漏洞 pwn 栈溢出 数字签名 Solidity Web3.0 PoW 汇编 docker 容器 性能调优 仿真 信号 任务调度 并发 内存管理 GDB web 代理 红黑树 搜索 Django
该标签下的文章

当我们要对100亿的数据排序,内存无法一次性装下数据时,怎么办?(附代码)

2024-03-10 09:31:19
73
教程

估计不少人会被问到这个问题,这个其实是外排序问题,不同于内排序全程都可以在内存中进行,外排序一般数据量巨大,当然也是有解决方案的,解决方案不外乎几种: 1. 分块读取,然后插入数据库中,让数据库帮我们排序,我们分块查询数据库,然后分块读取保存进文件(这种方法简单直接,技术难度没那么大,但是对数据库服务器要求比较高) 2. 分治法,将原始大文件切割成小文件,使得小文件内的数据能够一次性加载进内存,小文件内的数据先排序,然后每次从这些小文件中读取若干数据出来,使用归并排序合并成大的文件。 3. 如果这些数据的范围都不大,则有很多数据是重复的,我们使用计数排序即可。 下面演示一下方法二的整个实操过程。 ...

非递归方式进行归并排序链表

2020-08-24 20:13:00
362
算法

题目大意 给你一个链表, 在 `O(n log n) `时间复杂度和常数级空间复杂度下,对链表进行排序。 啥?把链表排序,把时间复杂度控制在`O(nlogn)`?,链表不像数组,排序没有那么方便啊 ...