タグ

algorithmに関するnantanのブックマーク (9)

  • Goで順列(permutation)を実装する

    配列の並び替えのパターンの列挙をする関数をgolangで書く.ABC123で必要になったので. TL;DR QuickPermを使うと良さそうです. 上記はコピペ用でこっからはいくつか方法を試して最後に速度比較します. 方法1: naive dfs 素直にdfsをする.前から数字を決めていって,決めたらその数字を選択肢から消して次へ行く.全部使ったら(選択肢が無くなったら)1つのパターンとして採択する. 上のコードで使ってるサブ関数たちです.この後の方法でも使ってるのですが面倒なので1度だけ掲載. 方法2: Heap Algorithm Heapのアルゴリズム を使う. 方法3: QuickPerm QuickPermを使う. 方法4(おまけ): QuickPerm + Channel Generate all permutations in goとかを見ているとChannelを使った実装

  • Generate All Permutations of an Array | Baeldung on Computer Science

  • YouTube - What different sorting algorithms sound like

    This particular audibilization is just one of many ways to generate sound from running sorting algorithms. Here on every comparison of two numbers (elements) I play (mix) sin waves with frequencies modulated by values of these numbers. There are quite a few parameters that may drastically change resulting sound - I just chose parameteres that imo felt best. After making this video I found that so

    YouTube - What different sorting algorithms sound like
  • 404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10

    2007年11月26日18:15 カテゴリMathLightweight Languages プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10 ぎくっ あなたが一番好きなアルゴリズムを教えてください。 また、その理由やどんな点が好きなのかも教えてください。 - 人力検索はてな なぜぎくってしているかというと、実はすでにアルゴリズムの発注を受けているからなのだ。いつまでも伏せておくのもなんなので、ここにえいやっとdiscloseしてしまうことにする。 アルゴリズム大募集! C&R研究所 - トップページ その下書きもかねて、そこでも紹介しないわけに行かないメジャーなアルゴリズムをとりあえず10個紹介しておくことにする。 ユークリッドの互除法(Euclidean algorithm) その昔(数百年ほど前)は「アルゴリズム」といえば、「手順一般」を指すのではなく、この「互除法

    404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10
  • アルゴリズム百選 - フィボナッチ数列にO()を学ぶ - www.textfile.org

    http://blog.livedoor.jp/dankogai/archives/50958771.html 弾さんの記事。 フィボナッチ数列の一般項を求める式を使ったときってO(1)って言えるのだろうか? 「O()が小さいからといって速いとは限らない」が抜けている。 読んでいるうちにアルゴリズムのが書きたくなってきたりして。 追記(1): http://blog.livedoor.jp/dankogai/archives/50962361.html 弾さんの追加記事。 弾さんのO記法の定義がわかりません。奥村先生の『C言語による最新アルゴリズム事典』の「O記法」には以下のように書かれています。 もっと正確にいえば,定数c(> 0),Nが存在して,n≧Nならば必ず|f(n)|≦c|g(n)|が成り立つとき,“n→∞のときf(n)=O(g(n))である”という. この定義だと、フィボナッ

    アルゴリズム百選 - フィボナッチ数列にO()を学ぶ - www.textfile.org
  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

  • PHP で、連想配列の配列を効率よくソートする - kなんとかの日記

    PHPで、ファイル名を含む連想配列の配列があるとして、 <?php $data = array( array('id'=>101, 'filename'=>'foo.jpg'), array('id'=>104, 'filename'=>'bar.jpg'), array('id'=>109, 'filename'=>'baz.jpg'), ); ?> これをファイルサイズでソートしたいとする。 この場合、比較関数を定義して、その関数名をusort()に指定するのが一般的な方法である。 <?php // 比較関数 function compare_by_filesize($item1, $item2) { $size1 = filesize($item1['filename']); $size2 = filesize($item2['filename']); if ($size1 < $s

    PHP で、連想配列の配列を効率よくソートする - kなんとかの日記
  • 著名ソーシャルメディアが使っているアルゴリズムを大公開! | Moz - SEOとインバウンドマーケティングの実践情報

    “アルゴリズム”は、もっとも非人間的なものの代表だともいえる。ソーシャルメディアにとって、そのアルゴリズムが不可欠だというのは、実に皮肉めいている。 僕はこの間、グーグルがどうやってユーザーデータを集めているかについて書いた記事を掲載した(前編、後編)。今回は、著名なソーシャルメディアサイトが、ユーザーデータを活用する上でどのようにアルゴリズムを用いているのか、白日の下にさらそう。 ソーシャルメディアを成り立たせているのは人間の力だが、ユーザーが入力したデータを利用できる状態にする仕組みは、アルゴリズムによって作られている。現在活動している無数のソーシャルメディアサイトで実証済みのことだが、ユーザーの関与とアルゴリズムによる処理ルールの上手いバランスを見出すことは、とても難しくなりがちだ。これから紹介するアルゴリズムは、悪意のないユーザーと結びついて初めてうまくいくものだ。 人気ソーシャル

    著名ソーシャルメディアが使っているアルゴリズムを大公開! | Moz - SEOとインバウンドマーケティングの実践情報
  • マージ・ソート : 巨大データのソート法

    はじめに まずはともあれ腕試し、この問題を解いてみてくださいな: 【問1】 デタラメな順序で並んだ文字列の集合がテキストファイル「input.txt」に収められています。この文字列群を辞書順(昇順)に並び換えたテキストファイル「sorted.txt」を作りなさい。 ※各文字列は改行で区切られています。 プログラミング教の練習問題、あるいは学校の課題で出てきそうな“お馴染み”の問題です。ソート(整列)アルゴリズムの実装には配列/代入/条件分岐/ループなどなどプログラミングの基中の基となる構文を総動員するため、練習問題としてよく使われますね。 早速解いてみましょう、ソート・アルゴリズムにはこれまたお馴染みのバブル・ソートを使います。C#、VB.NETC++/CLIの3まとめて一気にいきますよ: using System; using System.IO; using System.C

    マージ・ソート : 巨大データのソート法
  • 1