タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

sortに関するranringoriraのブックマーク (2)

  • ヒープソート

    ヒープソートとは? ヒープソートの考え方は、まず、データをヒープ構造にし、完成したらデータの先頭の値を取り出す。そしてまたヒープ構造を作り・・・という繰り返しである。 ここでヒープ構造とは、簡単に言うと、2分木の各節点にデータを保持し、親のデータが2つの子のデータよりも大きくなるように作られたデータ構造である。 つまり、これから分かることは全てのデータの中で2分木の「根」、すなわちデータの先頭に最大値を持つデータが必ず存在する。という事である。 考え方 配列N[]に次のようなデータが格納されているとする。 これを2分木で表現すると、 上図のようになる。 ヒープソートを行うには、まず、この配列(2分木)をヒープ構造にする必要がある。ヒープ構造の特徴は先にも述べた通り、次のようなものである。 二分木の根には必ず最大値がくる。 親子関係、すなわちN[a]・N[2a+1]・N[2a+2]の 値を

  • [ruby] ハッシュの配列を複数のキーでソートする

    実行環境: ruby 1.9.3 rubyでハッシュの配列を複数のキーでソートする場合のやり方です。 多次元配列やオブジェクトの配列も同じ考え方でいけます。 たとえば、以下のようなハッシュの配列があったとします。 arr = [ { :name => "Dave", :age => 7, :birthday => '12/05' }, { :name => "Carol", :age => 5, :birthday => '08/23' }, { :name => "Alice", :age => 6, :birthday => '05/18' }, { :name => "Bob", :age => 5, :birthday => '01/31' } ] これを :age と :birthday の2つの値でソートすることを考えます。 あくまでも例なので :birthday に年まで入れ

  • 1