タグ

algorithmに関するhama_DUのブックマーク (3)

  • Goで型を挿げ替え可能なデータ構造ライブラリを作る - Qiita

    Go Advent Calendar 2015 その2 の 11日目の記事です。 Go Advent Calendar 2015 の日の記事 → Golangで画像をglitchできるライブラリの紹介 Go Advent Calendar 2015 その3 の日の記事 → Goのインタフェースがパフォーマンスに及ぼす影響 最近Goで書かれたアルゴリズムとデータ構造のライブラリを読み漁っていて、型と振る舞いを挿げ替えできるライブラリを作る方法を学んだのでノウハウを記事にしました。今回は題材として点更新+区間参照のシンプルなセグメントツリーを扱います。 まずセグメントツリーの概要を述べ、愚直な実装を示した後にそれを汎用化します。 セグメントツリーとは 数値が格納された配列をイメージしてください。配列は、単一要素に定数時間でアクセスでき、参照/更新のコストは共に $O(1)$ です。 しかし

    Goで型を挿げ替え可能なデータ構造ライブラリを作る - Qiita
    hama_DU
    hama_DU 2015/12/11
    Go:アルゴリズム=3:7ぐらいの記事
  • 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)

    TwitterのTLで知ったのだが、少し前に海外掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う? #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait example usage: ./sleepsort.bash 5 3 6 3 6 3 1 4 7 2 Name: Anonymous : 2011-01-20 12:27 >>1 なん…だと

    常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)
    hama_DU
    hama_DU 2011/05/20
    その発想はなかったw
  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた - てっく煮ブログ

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、RESET を押すと好きなパラメータで試すことができます。こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。K-means 法とはK平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージになります。各点にランダムにクラスタを割り当てるクラスタの重心を計算する。点のクラスタを、一番近い重心のクラスタに変更する変化がなければ終了。変化がある限りは 2. に戻る。これ

  • 1