入力1:整数の長いリストを含む.csvファイル。例:非常に大きな整数のcsvファイルを効率的に反復処理する方法はありますか?
1
10
23
2450
12
560
320
705
...
入力2:整数のリストを.csvファイル、およびそれぞれの整数の次の空白位置
5 -
12 -
15 -
13 -
350 -
出力:入力、入力1からの整数のカウントを探します2の整数は.csvファイルに等しいかそれ以上であり、数値を.csvファイルに追加します。
これはDNAシーケンシングを伴うことであり、入力1には100万を超えるデータエントリがあります。この問題にアプローチする効率的な方法は何でしょうか?
私の考えは、入力1のすべてのエントリを1つの大きな配列に読み込んでソートすることでしたが、これは非効率的で多くのメモリが必要です。どんな指針も大変ありがとうございます。
編集:
出力(入力2と同じファイル):
int型、値で、ソートマップに第二のファイルから数字を入れ
5 1
12 3
15 3
13 3
350 5
入力2の方がはるかに小さい場合は、入力2の整数をメモリに格納してソートし、入力1の各intに対して入力2の次の大きい整数を取り、1を加算します。最後に、入力2の各整数 'x'には、前の数字と' x'の間にある数字の数があります。すべてのより小さい数の 'x'を持つためには、前のすべての数を合計してください。これは、入力2のメモリと、入力1に関する線形時間のみを必要とします。これは、私が理解するように、はるかに長くなります。 – fairtrax
"csv"ファイルにカンマが表示されません。彼らはテキストファイルではありませんか? –
あなたは何をしようとしているのか分かりません。出力例を教えてください。 –