タグ クイックソート
人気順 5 users 50 users 100 users 500 users 1000 users【超入門】キミにも読める!Rubyのソースコードの歩き方 - Qiita
はじめに 先日、会社のSlackで、新入社員から Array#sort の動作(ソートのアルゴリズム)が良くわからないという質問がありました。 「多分、クイックソートじゃないかと思うが Rubyのソースコードのどこに実装されているかわからない ので、Rubyコミッターに聞きましょう。」 みたいな先輩社員(私の同僚)からのアド... 続きを読む
アルゴリズムの勉強は必要か?不要である3つの理由
アルゴリズムとは? アルゴリズムとは、ある問題を解く具体的な手順のことです。 プログラミングの世界では、効率的な開放のことを指すことがあります。 有名なアルゴリズムだと、クイックソートと呼ばれるものがあります。 これは、その名の通り、数列を効率的にならべるアルゴリズムです。 また、私が初心者のころ 優... 続きを読む
定番のアルゴリズムは退屈?アルゴリズムをもっと楽しく学ぼう!|TECH PLAY Magazine[テックプレイマガジン]
プログラミングを学ぶとき、合わせてアルゴリズムを学ぶ人は多いと思います。アルゴリズムに関する書籍を読むと、ソートや探索などの基本的な内容がどの本にも載っています。学校で学ぶ場合も、必ず教えられるアルゴリズムでしょう。 ソートのアルゴリズムの場合、挿入ソートや選択ソートから始まり、クイックソートやマ... 続きを読む
「ソート」を極める! 〜 なぜソートを学ぶのか 〜 - Qiita
こうした時代の変化により、「どういう場面でどのソートが最強か」という議論の重要性が相対的に下がって来ています。昔は 【Before】 多くの場面では、 クイックソート がよい 要素数が小さいときや、ほとんど整列済みに近いときは、 挿入ソート も有力 要素数が小さくて、省メモリ性や安定性を重視したいときは、 挿入ソート がよい 各要素が整数値であまり大きな絶対値をとらないときは、 計数ソート や 基... 続きを読む
いつからHaskellの5行クイックソートが遅いと錯覚していた? - Qiita
Haskellの入門者向け解説ではHaskellのエレガントさのデモンストレーションとして、以下のように非常にシンプルなクイックソートが紹介される事があります。 quicksort [] = [] quicksort ( x : xs ) = quicksort lt ++ [ x ] ++ quicksort gteq where lt = filter ( < x ) xs gteq = fi... 続きを読む
乱数のたのしい話と遺伝アルゴリズム - きしだのはてな
金曜日の「プログラマのための数学勉強会@福岡」で乱数の話をしてきました。 プログラマのための数学勉強会@福岡 #3 - connpass で、乱数の生成だとか、クイックソートや素数判定などの乱択アルゴリズムの話とかをしました。 乱数タノシイヨ 乱数のたのしい話 from なおき きしだ で、その中で、遺伝アルゴリズムで巡回セールスマン問題(TSP)を解くというのをやってみました。遺伝アルゴリズム、... 続きを読む
JavaScript - とても長い配列の上位M件だけをクイックソートより高速に取り出す - Qiita
要約 めっちゃ長い配列の上位M件だけ取り出したい時に、全部ソートするのは無駄に感じる QuickSortをちょっと改良すると無駄なソートを省ける 単純な実装でも10倍の差が出た 発想 QuickSelect(wikipedia英語版記事) というアルゴリズムがある。 これは、「配列をソートした時、n番目にくる要素を効率よく取り出す」アルゴリズムである。 例えば という配列をソートした時に3番目にく... 続きを読む
♪ドレミファソート
特 徴 イントロソートなどは、「クイックソート並みに速い」と表現されますが、♪ドレミファソートは実際にクイックソートよりも速く動作します。ただし、もともとクイックソートなので、何倍も速くなったというわけではありません。 クイックソートにとって「メディアンキラー」は天敵ですが、♪ドレミファソートはメディアンキラーが大好物です。 Quick3 ソート ♪ドレミファソートの正体はクイックソートと表現しま... 続きを読む
Elixir のリスト内包表記でクイックソート - Qiita
Elixir にはリスト内包表記という記法があり、これを使うとリストに対して 任意の条件でフィルタリング 別の値へのマッピング というよくある操作を簡潔に記述できる。 http://elixir-ja.sena-net.works/getting_started/18.html 例 iex> for n <- 1..10, rem(n, 2) == 0, do: n * n [4, 16, 36,... 続きを読む
Scalaで型レベル”だけ”でクイックソート | プログラミング | POSTD
この投稿では、Scalaの型システムのみを使ったクイックソートアルゴリズムの実装方法をご紹介したいと思います。全ての自然数に対応する型を作り、計算や不等式をそれらの間に実装し、クイックソートさせるに至るまで、全てを型システムのみで行っていきます。Scalaの型システムが先進的であることは、皆さんもご存じのことかと思います。この投稿では、Scalaの型システムのみを使ったクイックソートアルゴリズムの... 続きを読む
統計を始めたい人に僕がPythonよりRを勧める理由 - 蛍光ペンの交差点[別館]
2015-06-11 統計を始めたい人に僕がPythonよりRを勧める理由 今回は「ほぼRしか使ったことがない」人間*1が、できる限り二者の優劣をくっきり述べる。 僕はほとんどRしか使ったことがない。Pythonはtfidfやクイックソートをライブラリ無しで実装したりした程度。 前半の主張は以下である。 「過去のRでの10回程度の解析において、Rで不十分さを感じてPythonを使った経験は1度だけ... 続きを読む
ソートの逆流れ - d.y.d.
17:53 14/12/22 ソートの逆流れ クイックソートってあるじゃないですか、クイックソート。 配列、たとえば [4,2,1,7,0,6,5,3] があったときに、 小さい方を左に、大きい方を右にまず適当に集める。 この「小さい方」と「大きい方」への二分割を、いわゆる再帰的に、 分かれたブロック両方で同じ事を繰り返していくと… なんと、小さい順に並んだ配列 [0,1,2,3,4,5,6,7]... 続きを読む
Java8 Streamではクイックソートが書けない - きしだのはてな
タイトルは釣りです。もちろん、汎用ライブラリなので、Streamを使ってクイックソートが書けないわけではありません。ただ、Streamで完結したままではクイックソートは書けません。Listとの相互変換が必要です。 で、Streamで完結したままクイックソートが書けない直接的要因はいくつかあって、それを解消するユーティリティメソッドが用意されてれば、この件に関してはStreamで完結することもできる... 続きを読む
クイックソート殺し - d.y.d.
クイックソート殺し こういう系統の話。 Quicksort Killer (kazoo04さん) qsortを撃墜し(最悪ケースを与え)てみた。 (qnighyさん) A Killer Adversary for Quicksort (shinhさんの解説) Webアプリケーションに対する広範なDoS攻撃手法(hashdos)の影響と対策 (徳丸さんの解説) ただのクイックソートは要素数 N の配... 続きを読む
「低要求での品質逆転の法則」というのを思いついた - きしだのはてな
つまり、ソフトウェアのあらゆるパラメータで、要求が低いときには工夫をしないほうが品質が高くなるという法則。 たとえば、アルゴリズムというのは理論的にはデータが増えたときに性能悪化がゆるやかなもののほうがよいということになってる。でも多くの場合で、よいアルゴリズムは、少ないデータ数では単純なアルゴリズムに負ける。ソートなんかだと、データ数が一定以上のときはクイックソートだけどデータ数が少ないときはマ... 続きを読む
イケてないプログラム(使えない成果物)に見られる3つの共通点 :: Drk7jp
イケてないプログラム(使えない成果物)に見られる3つの共通点 クイックソートの話で書いたとおり、相変わらず Excel - VBA と格闘する日々が続いております・・・orz 「大企業にありがちな問題。委託開発の甘い罠・・・」でも書いたとおり、今まで外注して作ったソフトウェアってほぼ 100% の確率でイケていないものが完成してます。年末に納品されたソフトウェアのできも酷いの何のって・・・ さて、... 続きを読む