コード集
15 puzzle [2015/04/16]
Bit Vector [2015/03/24]
ラベリング処理 (Java) [2015/03/19]
Int型可変長配列? (Java) [2015/03/06]
どのケースでもデータの取得・更新は圧倒的にint[]が速い(一桁違うケースもある)
しかしデータ追加は要素数に対して拡張サイズが十分に大きくないとint[]が一番遅い
(逆に比が約5倍である要素数5000で拡張サイズ1024のときは一番速い)
要素数50万、5万で拡張サイズが256,1024のとき 自作クラスFooの追加が一番速い
しかしデータ取得は 自作クラスFooが一番遅い
データ更新はArrayList<Integer>に次ぐ遅さ
IntBufferのデータの更新はint[]に次ぐ速さ
しかしデータ追加はint[]に次ぐ遅さ (int[]と同様に要素数と拡張サイズの比に依存する模様)
またデータ取得は自作クラスFooよりかろうじて速い程度(大差ない)
ArrayList<Integer>のデータ取得はIntBufferの倍近く速いことが多い
しかしArrayList<Integer>はデータ更新が一番遅い
データ追加の速度はIntBufferよりは遥かに速い
データ追加 Foo >> ArrayList<Integer> >> IntBuffer >> int[]
データ更新 int[] >> IntBuffer >> Foo >> ArrayList<Integer>
データ取得 int[] >> ArrayList<Integer> >> IntBuffer > Foo
スコア
Foo 7 + 3 + 1 = 11
ArrayList<Integer> 5 + 1 + 4 = 10
int[] 1 + 7 + 6 = 14
IntBuffer 3 + 5 + 2 = 10
要素数中・大で取得・更新操作が最も多いなら int[]
要素数大で追加操作が最も多いなら Foo
要素数中で追加・取得操作が最も多いなら ArrayList<Integer>
要素数小なら int[]
IntBufferは単なるint型配列として扱うだけなら使いどころがない
FileChannelやByteBufferでのメモリ解釈くらいしか用途がない
BigDecimal? (C) [2015/02/21]
赤黒木? (C) [2015/02/07]
事後処理 (C) [2015/02/06]
二分木の表示 (C) [2015/02/06]
AVL木ってのに挑戦 (C) [2015/02/04, 2015/02/07]
並び替え全通り生成機 (C/C++) [2014/10/03-2014/10/04]
hostsファイルの整理 (Java) [2014/05/06]
BASICインタプリタ(Java) [2014/04/12-2014/04/13,2014/05/01-2014/05/06]
長桁10進整数小数(C言語) [2014/04/11]
ハッシュテーブル(C言語/Java) [2014/03/20-2014/03/21]
ハッシュテーブル2(C言語) [2014/04/10-2014/04/11]
CRコード変換(C言語) [2014/03/30]
素因数分解(Java) [2014/04/14/15]
Javaのclassファイル生成(Java) [2013/12/18]
簡易スタックマシン(C言語) [2013/12/16]
2進数→10進数(C言語) [2013/10/19]
Java風クラス作ってみようと(C++) [2013/10/26]
BigInteger(C++) [2013/10/20]
GZIP(Deflater)学習(Java/PHP) [2013/11/05-2013/11/06]
C++の勉強(C++) [2013/10/13-2013/10/25,2014/04/27]
ヒキスレのチャット風?クライアント(PHP)[2013/10/17]
paizaオンラインハッカソンVol.1提出コード [2013/12/06-2014/01/17]
paizaオンラインハッカソンVol.2提出コード [2014/04/18-2014/04/28]
paizaオンラインハッカソンLite提出コード [2014/08/14,2014/08/19]
最終更新:2016年02月27日 01:29