タグ

JavaとAlgorithmに関するmoritataのブックマーク (3)

  • 高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development

    先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解

    高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development
  • アルゴリズムの勉強のしかた - きしだのHatena

    この記事で、アルゴリズムの勉強はアルゴリズムカタログを覚えることじゃないよということを書きました。 プログラムの理論とはなにか アルゴリズムの勉強というのは、スポーツで言えば腕立て伏せや走り込みみたいな基礎体力を養うようなもので、「ソートなんか実際に自分で書くことないだろう」とかいうのは「サッカーは腕つかわないのに腕立ていらないだろう」とか「野球で1kmも走ることなんかないのに長距離の走り込みいらないだろう」とか言うようなものです。 Twitterでアルゴリズムの勉強とはなにかと尋ねられて、「アルゴリズムの基的なパターンを知って、それらの性質の分析のしかたをしって、いろいろなアルゴリズムでどのように応用されているか知って、自分が組むアルゴリズムの性質を判断できるようになることだと思います。 」と答えたのですが、じゃあ実際どういうで勉強すればいいか、ぼくの知ってるからまとめてみました。

    アルゴリズムの勉強のしかた - きしだのHatena
  • Mathematical Information Technology

    サイトについて アルゴリズムとデータ構造 平方根 開平方のアルゴリズム 平方根のアルゴリズム 初期値の改良による平方根計算の高速化 ソート 基ソート 基ソートの改良 高速なソート 高速なソートの改良 その他のソート ソートの様々な比較規則 クイックソート、マージソートのマルチスレッド化 SortApplet 数値の0埋め ヒープ 直接挿入法 連結リスト 数列の和 εアルゴリズムによる級数計算 オイラーの変換による交代級数の加速 数学 素数 素数 試行除算による素数判定 フェルマーテストによる素数判定 素数定理について Javaによる素数の判定 Javaでの平方根計算アルゴリズムの改良による素数判定の高速化 一ケタの素数の倍数を取り除くことによる素数判定の高速化 データ構造の変更による繰り返しの高速化 素数に関する情報源 ソフトウェア開発 LSI C-86 Ver. 3.30c 試

  • 1