VB.NET

C#

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

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

[C#][VB] 二分探索(バイナリサーチ)の実装

二分探索(バイナリサーチ)とは 二分探索 – Wikipedia 二分探索(にぶんたんさく、英: binary search、BS)やバイナリサーチとは、ソート済み配列に対する探索アルゴリズムの一つ。 要素数nの配列に対して線形探索する場合(先頭から順番に探す方法)は、時間計算量が O(n) となります。それに対して二分探索(バイナリサーチ)は O(log n) と高速に動作します。た […]

20190811_[C#][VB] 優先度付きキューを実装する方法

優先度付きキュー(PriorityQueue) 優先度付きキュー(Priority Queue)は、優先度に従って優先的に要素を取り出せるコレクションです。 単純なキューだと先入れ先出し(FIFO)ですが、取り出すときに優先度の高い要素(例えば値の大きいもの)から順番に取り出せるというキューになります。例えば普通のキューだと 3, 5, 1 の順に入れるとその順番に取り出せますが、これを優先度に従 […]

[C#][VB.NET] エクスプローラーで指定のフォルダを開く方法

フォルダに関連付けられたソフトで開く方法 Process.Start() は指定したパスのアプリを実行します。フォルダは通常エクスプローラーが関連づけられています。 したがってフォルダを指定するとエクスプローラーでそのフォルダを開いてくれます。 C# // using System.Diagnostics; Process.Start(@"C:\work"); VB.NET Process.Sta […]

C#

[C#][VB.NET] フォルダをコピーする方法(中身のファイルを含めて)

C#(VB.NET) でフォルダを中身ごとコピーしたい .NET では中身の入ったフォルダのコピーは用意されていません。したがって自分で作ってやる必要があります。 以下実装です。 C /// <summary> /// ディレクトリの中身をコピーする /// </summary> /// <param name="sourcePath">コピー元パス</p […]

C#

[C#][VB] 指定ディレクトリ、ファイルの変更を監視する方法

C#, VB.NET で指定ディレクトリ、ファイルの変更を監視する方法 指定したパスのディレクトリやファイルを監視し、何かしらの変更があったタイミングで処理を実行するというようなことをC#, VB.NETで実現するには、System.IO.FileSystemWatcher クラスを使います。 イベントの種類 FileSystemWatcher では、指定したPathのファイルまたはディレクトリに […]

C#

[C#] [VB] ブロックソートを実装する方法

ブロックソートとは ブロックソート – Wikipedia ブロックソートとはデータの可逆変換アルゴリズムの一種です。ソートとついていますが、データのソートを効率よくするため ソートアルゴリズムではありません 。また、データの圧縮アルゴリズムでもありません。Wikipediaには次のようにあります。 ブロックソート、ブロックソーティング、Burrows-Wheeler変換 (Burro […]

C#

[.NET] Directory.Deleteで削除が非同期(時間差)で完了する

Directory.Deleteで削除されない .NETには ディレクトリを削除する Directory.Deleteメソッドがあります。このメソッドの挙動で戸惑った点があったのでメモ代わりに書き残します。 やりたかったこと まず第一にやりたかったことは、「ディレクトリ内のファイルをすべて削除する」ということです。ここで私は面倒くさいので「ディレクトリごと消して、そのあとディレクトリを作成する」と […]

C#

[C#][VB] Enumの値をループ(列挙)する方法

Enumの値をすべて列挙したい 稀によくあるのですが、まったく思い出せないのでここにメモしておきます。Enumの値をループしながら扱う方法です。 を使います。 Enum.GetValues() を使います。ここれでは曜日を表す列挙体(DayOfWeek)の値を、文字列と数値の組み合わせで出力しています。 C# // 列挙体の値をすべて表示 foreach (DayOfWeek value in E […]