careercup-排序和查找 11.4

简介: 11.4 设想你有一个20GB的文件,每一行一个字符串。请说明将如何对这个文件进行排序。 解法: 当面试官给出20GB大小的限制时,实际上在暗示些什么。就此题而言,这表明他们不希望你将数据全部载入内存。

11.4 设想你有一个20GB的文件,每一行一个字符串。请说明将如何对这个文件进行排序。

解法:

当面试官给出20GB大小的限制时,实际上在暗示些什么。就此题而言,这表明他们不希望你将数据全部载入内存。该怎么办呢?做法是只将部分数据载入内存。

我们将整个文件划分为许多块,每个块xMB,其中x是可用的内存大小。每个块各自进行排序,然后存回文件系统。各个块一旦完成排序,我们便将这些块逐一合并在一起,最终就能得到全都排好序的文件。

这个算法被称为外部排序。

相关文章
|
4月前
|
算法
leetcode-26:删除排序数组中的重复项
leetcode-26:删除排序数组中的重复项
26 1
|
5月前
剑指Offer LeetCode 面试题53 - I. 在排序数组中查找数字 I
剑指Offer LeetCode 面试题53 - I. 在排序数组中查找数字 I
20 0
|
9月前
|
算法
【leetcode系列】26. 删除排序数组中的重复项
【leetcode系列】26. 删除排序数组中的重复项
47 0
|
11月前
leetcode:26.删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
41 0
每日一题:Leetcode34 在排序数组中查找元素的第一个和最后一个位置
每日一题:Leetcode34 在排序数组中查找元素的第一个和最后一个位置
|
算法 Java
在排序数组中查找数字I(剑指offer 53-I)
在排序数组中查找数字I(剑指offer 53-I)
LeetCode 26. 删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
69 0
|
算法 Python
Leedcode升序序列查找元素位置
Leedcode升序序列查找元素位置
55 0
Leedcode升序序列查找元素位置
|
算法 索引
【力扣】搜索插入位置 学习大神的二分法查找
【力扣】搜索插入位置 学习大神的二分法查找
【力扣】搜索插入位置 学习大神的二分法查找
|
算法 前端开发 程序员
「LeetCode」剑指Offer-53 I.在排序数组中查找数字 I
「LeetCode」剑指Offer-53 I.在排序数组中查找数字 I
91 0
「LeetCode」剑指Offer-53 I.在排序数组中查找数字 I