すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

C#でCSVファイル(30MB,60万レコード,12フィールド)を読み込んで,2フィールド目でクイックソートしたいのですが,
Listを使うべきか予めメモリを確保した2次元配列Ary[600000,12]を使うべきかどちらにするべきでしょうか?
データは追加登録することはなく,変更されることもありません。
データサイズが固定なら,Ary[600000,12]を使った方が,処理が速いと私は思っています。

  • 質問者:Sooda! くん
  • 質問日時:2008-12-28 00:17:21
  • 0

並び替え:

そうですか。2通りやってみたらどうですか?

  • 回答者:匿名希望 (質問から9分後)
  • 0
この回答の満足度
  
参考になりました。回答ありがとうございました。

データサイズが固定なら,Ary[600000,12]を使った方が実際早いですよ。

  • 回答者:sooda (質問から13時間後)
  • 0
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

データ量はそんなに多くはなさそうですが、
配列よりはListを使うほうが良さそうな気がします。
配列だと実体を移動する必要がありますが、
Listだと参照だけですむはずなので。

  • 回答者:Maku (質問から13時間後)
  • 0
この回答の満足度
  
参考になり、満足しました。回答ありがとうございました。

データサイズが固定ならば、2次元配列Aryを使います。

  • 回答者:匿名希望 (質問から2日後)
  • 0
この回答の満足度
  
参考になりました。回答ありがとうございました。

前提条件が、データの追加もなく、変更もされないということなので、
処理時間に関しては、固定配列であれば処理時間は早そうな気がします。
無駄な参照をしないプログラムの実装ができると判断したので。

ただ、読み込むCSVファイルは、人間が作るものです。
(システムが出力するものかもしれませんが、想定外のバグがあると
考えます。)
エラー処理をどうさせるか?万が一、600001行のレコードになったときにどう
処理させるか?599999行のレコードになったときにどう処理させるか?
で状況が変わってくると思います。

システム開発の現場では、色々な思想がありますが、
部分最適ではなく、全体最適をみて実装していきます。

以上です。

  • 回答者:マッドサイエンティスト (質問から3日後)
  • 0
この回答の満足度
  
参考になりました。回答ありがとうございました。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る