タグ

2011年10月27日のブックマーク (2件)

  • 高速な安定ソートアルゴリズム "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
  • DevOpsというオシゴト | quipped

    DevOpsというオシゴトをご存知だろうか? DevOpsというのはDevelopmentとOperationsのかばん語で、この数年話題になっているフレーズである。伝統的に、ソフトウェアの世界は、大きくわけてDevelopmentとOperationsの2つに分かれていた。Developmentに属するのは、いわゆるプログラマーやソフトウェアエンジニアと呼ばれる人たちで、ガンガンコードを書いてアプリケーションを作る人たちのことだ。Operationsは、プログラマーたちが書いたソフトウェアを管理したり、開発環境を整えたり、サーバーを監視したりするのが主な役割で、インフラエンジニアやシステム管理者と呼ばれる人たちがこちらに属する。 今までDevelopmentとOperationsは、きっぱりと分離されていた。それもそのはず、必要とされるスキルも経験も大きく違う。例えばウェブの世界でいえば