目次
返信内容:
ホームページ バックエンド開発 PHPチュートリアル インタビューの質問: 256M のメモリがある場合、10G ファイルをソートします (ファイル内の 1 行につき 1 つの数字)

インタビューの質問: 256M のメモリがある場合、10G ファイルをソートします (ファイル内の 1 行につき 1 つの数字)

Aug 10, 2016 am 09:07 AM
php

256M のメモリがあるとして、10G ファイル (ファイルの行ごとに 1 つの数字) を並べ替えるにはどうすればよいでしょうか? 10G ファイルを検索するにはどうすればよいですか? 10G ファイル内の各キーワードの出現数をカウントする方法

返信内容:

256M のメモリがあるとして、10G ファイル (ファイルの行ごとに 1 つの数字) を並べ替えるにはどうすればよいでしょうか? 10G ファイルを検索するにはどうすればよいですか? 10G ファイル内の各キーワードの出現数をカウントする方法

スペースと時間を交換する
具体的な実装は、ファイルをバッチでロードしてから計算することです

java?nioとmapreduceを使うというアイデア

php はわかりませんが、この質問には見覚えがあるようです。 php,但是看这个题目似曾相识。
说说思路吧。
1、排序的实现
这是一个单机外部排序的典型题目。具体的方法就是先分块进行排序然后多路归并成输出文件。
2、查找
如果不能对文件进行处理的话,只能遍历进行查找。
如果是可以对文件进行处理的话,那么上面已经排序好了文件,就可以进行二分查找あなたのアイデアについて話しましょう。
1. ソートの実装
これは、単一マシンの外部ソートの典型的な問題です。具体的な方法は、チャンクで並べ替えてから、出力ファイルに複数の方法でマージすることです。
2. 検索

ファイルを処理できない場合は、トラバーサルによってのみ検索できます。

ファイルを処理できる場合、ファイルは上で並べ替えられており、バイナリ検索を実行できます。

3. 統計

ファイルを処理できない場合は、一度スキャンする以外に良い方法はありません。 🎜すでにシーケンスをキャプチャしている場合は、二分探索を直接実行できます。見つかった位置の出現数を両端で検索します。 🎜 🎜 🎜「Programming Pearls」という本を読むと、この問題があるようです。 🎜
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles