C言語による主要なソートアルゴリズムの実装と解説
開発環境とコード規約
本記事で紹介するコードは、C言語標準規格(C99以降)を想定しており、 Visual Studio 2022などの主要な開発環境で動作します。可読性と保守性を向上させるため、変数名は論理的な意味を持つようにリファクタリングし、標準的な型定義を使用しています。
挿入ソート (Insertion Sort)
挿入ソートは、手札のトランプを整理するように、整列済みの部分 ...
7月9日 21:10 投稿
牛客冬季アルゴリズム基礎訓練キャンプ2 解答解説
問題 A
解法の考え方
入力値7個が全て{1,2,3,5,6}のいずれかであるかを検証する。無効な値が1つでもあれば即時判定する。
コード例
#include <iostream>
using namespace std;
bool isValid(int val) {
return val == 1 || val == 2 || val == 3 || val == 5 || val == 6;
}
int main() {
int tmp;
for (int i = 0; i < 7; i++) {
cin > ...
6月30日 18:41 投稿
クイックソートアルゴリズム:ピボット選択方法と計算量の解析
クイックソートの基本概念
クイックソートは、分割統治法に基づく効率的なソートアルゴリズムです。これはバブルソートの改良版とも言え、バブルソートのO(n²)の計算量を改善します。クイックソートでは、ある基準値(ピボット)を選び、配列をそれより大きいグループと小さいグループに分割して再帰的に処理します。
問題設定
整数配列を受け取り、クイックソートを使っ ...
6月16日 21:58 投稿
Pythonプログラミングの基礎課題
課題1: 3つの整数を昇順で出力するプログラム
3つの整数を入力し、それらを昇順に並べて出力するプログラムを作成します。
num1 = int(input("最初の数字を入力してください:"))
num2 = int(input("2番目の数字を入力してください:"))
num3 = int(input("3番目の数字を入力してください:"))
numbers = [num1, num2, num3]
numbers.sort()
print("昇順で並べ替え ...
6月14日 20:13 投稿
FHQ-Treap の学習ノート
FHQ-Treap の学習ノート
Treap は Tree と Heap を組み合わせたデータ構造です。
Treap は弱いバランスの取れた二分探索木であり、カーネルツリーとして見なせます。各ノードには (Key, Value) という2つの値を持ち、Key は二分探索木の性質を満たし、Value はヒープの性質を満たします(通常は最小ヒープ)。Key は実際の情報であり、Value はランダムな値で、木の高さが ...
6月10日 16:59 投稿
Javaアルゴリズム速習ガイド
Javaアルゴリズムクイックリファレンス
リスト
初期化
List<Integer> 数値リスト = new ArrayList<>();
主なメソッド
add(Object 要素);
size();
get(int インデックス);
isEmpty();
contains(Object o);
remove(int インデックス);
マップ
マップはキーと値のペアを保持するコレクションです。
初期化
Map<String, Integer> マップ = new HashMap< ...
6月4日 16:11 投稿
C言語におけるマージソートの実装と最適化
マージソートは分割統治法に基づく効率的なソートアルゴリズムです。この記事では、C言語での実装方法とパフォーマンス向上のためのテクニックを解説します。
マージソートの基本概念
マージソートは配列を2つの部分に分割し、それぞれをソートした後、結果をマージするアルゴリズムです。以下の特徴があります:
時間計算量:O(n log n)
空間計算量:O(n)
安定ソート
...
5月31日 21:41 投稿
バブル、挿入、クイック、マージソートの比較
バブルソート
隣接要素を比較して交換するアルゴリズム。最大値を末尾に移動させる処理を繰り返す。
public class BubbleSort {
public static void executeSort(int[] array) {
int length = array.length;
for (int i = 0; i < length - 1; i++) {
for (int j = 0; j < length - 1 - i; j++) {
if (array[j] > array[j ...
5月27日 19:15 投稿
C++のアルゴリズムとその応用
C++の標準ライブラリは、効率的なデータ操作を支援する多くのアルゴリズムを提供しています。これらのアルゴリズムは、コンテナ内の要素を検索、変更、並べ替え、統計情報の取得など、さまざまな目的で使用されます。
1. 非変更アルゴリズム
これらのアルゴリズムは、コンテナ内の要素を変更せずに操作します。
1.1 find と find_if
find(first, last, value): 指定した値 ...
5月27日 14:05 投稿
Java章節摘要と配列演習
1、記事概要
内容
本記事はJava学習の摘要と配列演習の問題を紹介します。
2、章02プロジェクト構造
3、演習問題
問題
配列を用いた基本演習を実装します。
3.1 最小値探し
package Practice;
public class practice01 {
// 主方法main関数
public static void main(String[] args) {
int minValue;
int[] values = { 4, 1, 6, 3, 9, 8 }; // 定 ...
5月26日 21:26 投稿