ソート

C#

[C#][VB] 挿入ソートを実装する

挿入ソート 挿入ソートを C#, VB.NET で実装してみます。 挿入ソートは、時間計算量 O(n^2) でバブルソートや選択ソートと同じく高速なソートアルゴリズムとは言えません。ただし、挿入ソートについて言えばある面で有用なソートアルゴリズムです。 挿入ソートは要素数の少ないデータに対して、効率よくソートするアルゴリズムです。 クイックソートなど高速なソートアルゴリズムについては、処理のオーバ […]

[Python] リストのソートまとめ(クラス、複数キー、降順、破壊的ソート)

Python のリストソートいろいろ Python3 でリストのソートを行う方法をまとめます。この記事でまとめるのは以下の方法です。 非破壊的ソート 破壊的ソート 降順にソート クラスの特定の値を使ってソート タプルをソート 複数キーを使ったソート 組み込み関数の sorted() Python の組み込み関数 sorted() を使ってリストをソートすることが可能です。sorted() は引数で […]

Rust ソートアルゴリズム実装(バブルソート、選択ソート、挿入ソート)

Rust を使ってソートアルゴリズムを実装してみる Rust を使ってソートアルゴリズムを実装してみます。バブルソート、洗濯ソート、挿入ソートをそれぞれ実装します。 Rust はクセが強いので、結構苦労しましたが以下を学びました。 配列要素の交換は swap() を使う Clone を実装する型は clone() を使える Copy を実装すると型は配列の要素をそのまま交換できる 10..1 みた […]

Javascriptで配列をソートする方法

Javascriptでソートを行う方法 Javascriptで配列をソートするには、sort() を使用します。使用方法は以下の通りです。 文字列の配列をソートするサンプル // sort()で文字列の配列をソートする。 var array = ['C', 'B', 'D', 'E', 'A']; var sortedArray = array.sort(); console.log(sorted […]

[Python] クイックソートの実装方法とアルゴリズム

Pythonとクイックソート Pythonでクイックソートを実装してみます。Python3.6を使います。 クイックソートは数あるソートアルゴリズムの中でも、実用上最速とされる誉れ高いアルゴリズムです。ただし条件次第で低速になってしまうので注意が必要です。 クイックソートは分割統治法と呼ばれる考え方を使ってソートを行います。まずソート対象のデータ(リスト)について、ピボット(基準値)を選び、その基 […]

[Python] ヒープソートの実装方法とアルゴリズム

ヒープソートの実装方法とアルゴリズム Pythonでヒープソートを実装してみます。Python3.6を使います。 常に最大値(最小値)を取り出すことができるデータ構造があれば、それを使ってソートアルゴリズムが実装できるという考えのもと、考案されたのがヒープソートです。ソートは2分ヒープと呼ばれる木構造を使います。 2分ヒープは2分木で、子ノードが常に親ノードより小さいことが保障される木構造です。し […]

[Python] バブルソート/選択ソート/挿入ソートの速度比較

バブルソート/選択ソート/挿入ソートの速度比較 Pythonで作成した上記ソートアルゴリズムの実装を、処理速度の面から比較してみます。使用するコードは以下のページのものです。 [Python] バブルソートの実装方法とアルゴリズム [Python] 選択ソートの実装方法とアルゴリズム [Python] 挿入ソートの実装方法とアルゴリズム ソートアルゴリズムにはデータによって最良の時間計算量が期待で […]

[Python] 挿入ソートの実装方法とアルゴリズム

Pythonと選択ソート Pythonで挿入ソートを実装してみます。Python3.6を使います。 挿入ソートは、時間計算量 O(n^2) でバブルソートや選択ソートと同じく高速なソートアルゴリズムとは言えません。ただし、挿入ソートについて言えばある面で有用なソートアルゴリズムです。 挿入ソートは要素数の少ないデータに対して、高速に動作する可能性があります。これはクイックソートなど高速なソートアル […]

[Python] バブルソートの実装方法とアルゴリズム

Pythonとバブルソート Pythonをはじめました。いろいろと勉強がてら実装してみます。ここではソートアルゴリズムの最も初歩的なバブルソートを実装します。 Pythonには2系と3系がありますが、Python3.6を使って実装しました。 # バブルソート def bubble_sort(array): n = len(array) for i in range(n-1): for j in r […]