タグ

algorithmとarrayに関するsomathorのブックマーク (3)

  • Array.prototype.sort について

    JavaScript の配列にはsortメソッドがあり配列のソートを実行することができるけど、この配列のソートの中の実装はどうなっているのかという話。v8 における配列ソートについての記事が大変参考になりました。 Chrome(V8)の実装はarray.jsにあり、配列の要素数が 10 以下の場合はInsertion sortを使い、それ以上の場合はQuicksortを利用する。Insersion sort の計算量は O(n^2)であるけど、少ない要素数の場合は Quicksort などより高速になるらしい。直近の commmitを見る限りだと、Chrome 69 か 70 あたりでTimsortに置き換えるつもりらしい。Timsort は average が O(n log n)で、最悪でも O(n log n)の計算量で済む。Quicksort を TimSort に置き換えるつもり

    Array.prototype.sort について
  • 初期化配列の実装 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは、最近ハマっている初期化配列について紹介したいと思います。 はじめに 皆さんプログラミングをする時に配列を使ってますか?使ってない人はほとんどいないのではないでしょうか? 長さNの固定長配列AはN個の要素を格納でき、かつ任意の位置に保存された要素A[i]を最悪定数時間(以下、定数時間)で読み書き可能な最も基的なデータ構造の一つです。配列の様々な操作の中で読み書きについで頻出する重要な操作が、配列の全ての要素を指定した値に書き換える初期化操作です。配列の初期化は配列長に対して線形な時間がかかるため、配列長が長い場合や、初期化が

    初期化配列の実装 - Qiita
  • Algorithm - 配列の冪集合、順列、組み合わせを再帰なしで作る : 404 Blog Not Found

    2013年03月08日11:00 カテゴリアルゴリズム百選Math Algorithm - 配列の冪集合、順列、組み合わせを再帰なしで作る C言語による最新アルゴリズム事典 奥村晴彦 ちょっと必要に迫られたので、JavaScript用のやつを作りました。 dankogai/js-combinatorics ・ GitHub こんな感じで使います。 var a = ['js', 'pl', 'py', 'rb'], c, e; p( '/* power set */' ); c = Combinatorics.power(a); p( 0 + c ); while (e = c.next()) p(JSON.stringify(e)); p( '/* combination */' ); c = Combinatorics.combination(a, 3); p( 0 + c ); p(J

    Algorithm - 配列の冪集合、順列、組み合わせを再帰なしで作る : 404 Blog Not Found
  • 1