[Python] 挿入ソートの実装方法とアルゴリズム
Pythonと選択ソート Pythonで挿入ソートを実装してみます。Python3.6を使います。 挿入ソートは、時間計算量 O(n^2) でバブルソートや選択ソートと同じく高速なソートアルゴリズムとは言えません。ただし、挿入ソートについて言えばある面で有用なソートアルゴリズムです。 挿入ソートは要素数の少ないデータに対して、高速に動作する可能性があります。これはクイックソートなど高速なソートアル […]
Web備忘録 プログラミングを中心に技術的な事柄を忘れないように書き残します。
Pythonと選択ソート Pythonで挿入ソートを実装してみます。Python3.6を使います。 挿入ソートは、時間計算量 O(n^2) でバブルソートや選択ソートと同じく高速なソートアルゴリズムとは言えません。ただし、挿入ソートについて言えばある面で有用なソートアルゴリズムです。 挿入ソートは要素数の少ないデータに対して、高速に動作する可能性があります。これはクイックソートなど高速なソートアル […]
Pythonと選択ソート Pythonで選択ソートを実装してみます。Python3.6を使います。選択ソートはバブルソートに次いで、単純で理解しやすいソートアルゴリズムです。 # 選択ソート def selection_sort(array): n = len(array) for i in range(0, n-1): # 最小値のインデックスを保持 min = i for j in range […]
Pythonとバブルソート Pythonをはじめました。いろいろと勉強がてら実装してみます。ここではソートアルゴリズムの最も初歩的なバブルソートを実装します。 Pythonには2系と3系がありますが、Python3.6を使って実装しました。 # バブルソート def bubble_sort(array): n = len(array) for i in range(n-1): for j in r […]
文字列をBase64形式にエンコード・デコードする方法 C#ないしVB.NETで文字列をBase64形式に変換するには、一度文字列をByte型配列に変換しそれをBase64文字列に変換します。Base64形式の文字列をもとの文字列に戻すには、その逆方向に実行します。 ただし、文字列をByte型配列に変換する際には、文字コードを意識しなければなりません。以下の例ではUTF-8でエンコード・デコードし […]
Byte型配列とをBase64文字列の相互変換する方法 C# using System; public class Program { public static void Main(string[] args) { // 変換前のデータ byte[] data = { 0xFF, 0x42, 0x43 }; // Byte型配列 => Base64文字列 string str = Conv […]
Byte型配列と16進数文字列を相互に変換する using System; using System.Linq; using System.Collections.Generic; public class Program { public static void Main(string[] args) { // 16進数の文字列 var text = "01ABEF"; // […]
Javascriptで配列をシャッフルあるいはランダムソートする方法をまとめます。アルゴリズムはフィッシャーイェーツを使います。
モンテカルロ法とは モンテカルロ法 とは、乱数を使っていろいろ計算してみよう、みたいなことです。詳しくはWikipediaをご覧下さい。 モンテカルロ法のアルゴリズムを使って、円周率πを計算してみます。 円周率πのを求める考え方 1辺が1の正方形を用意します。 そこに半径1の円の1/4を書きます。 正方形の内側にランダムに1点選び、円の内側かどうかを判定します。 3の処理をn回繰り返します。 円の […]
XorShiftとは 疑似乱数生成方法の一つにXorshiftというものがあります。 wikipediaによると、Xorshiftとは、演算が排他的論理和とビットシフトのみであるため高速である、という特徴があります。 Xorshiftによる乱数生成をC#で書いてみました。 C#の実装例 public class Xorshift { // 内部メモリ private UInt32 x; priva […]
C# で UnixTime を変換する方法 UnixTimeとは、1970年1月1日からの経過秒数で表される日付の形式です。文字通りUnix系のOSで使われる表現方法でもあります。 .NET4.6以降では、標準での変換方法が提供されていますが、それ以前では変換関数を用意する必要があります。 DateTime型からUnixTimeへの変換とその逆の変換について、サンプルを以下に示します。 .NET […]