C言語における配列操作と数値変換の実践的演習

本演習では、C言語における多次元配列のメモリ配置、統計計算、ソート・中央値算出、行列変形、進数変換、および魔方陣判定といった実用的なプログラミング技法を体系的に扱います。各課題は独立した関数設計を前提とし、ポインタと配列の関係性、配列引数の受け渡し規則、および副作用を意識した実装が求められます。 一次元・二次元配列のメモリ構造解析 以下のコードは ...

9月4日 01:27 投稿

木構造における敬愛関係に基づく頂点削除順序

根付き木が与えられます。各頂点は 1 から n まで番号が付けられており、pi は頂点 i の親、ci は敬愛フラグです。ci = 1 のとき頂点 i は祖先を敬愛しておらず、ci = 0 のときすべての祖先を敬愛しています。根の pi は -1 です。 以下の条件を満たす非根頂点を 1 つ選び削除を繰り返します。 親を敬愛していない。 すべての子が自分を敬愛していない(子がいない場 ...

8月20日 11:44 投稿

STL応用問題集

問題出典 : Nowcoder スタックとソート (nowcoder.com) 問題の解析 各要素の挿入に対して二つの動作が可能である スタックに挿入 直接出力(挿入後に即座に削除) この二つの動作をどう選択するか? 問題の要件:出力されるシーケンスは降順に並べる(ソート不可能な場合は辞書式で大きいものに近づける) 最大値が最初にスタックから取り出されるのが最適 最大値であ ...

8月8日 11:29 投稿

Javaにおけるオブジェクトの比較とソート:ComparableとComparatorの活用

Javaにおいて、自作クラスのインスタンス同士を比較したり、リストや配列内でソートしたりするためには、適切なインターフェースを実装する必要があります。標準のequals()メソッドは等価判定を行いますが、大小関係の評価や順序付けにはComparableまたはComparatorを用います。 1. Comparableインターフェース(自然順序付け) Comparableを実装することは、その ...

7月24日 20:01 投稿

iOS開発におけるクイックソートのObjective-C実装

クイックソート(Quick Sort)はバブルソートの改良版です。 クイックソートはC. A. R. ホーアによって1962年に提案されました。基本的な考え方は以下の通りです:一度の処理でソート対象のデータを二つの独立した部分に分割し、一方のすべての要素がもう一方のすべての要素より小さくなるようにします。その後、この方法をそれぞれの部分に対して再帰的に適用することで ...

7月18日 17:44 投稿

Java での特定条件に基づく優先ソート手法

標準的なデータ整列 Java 開発において、コレクションや配列の順序整理は頻繁に行われる処理です。通常、数値や文字列の自然順序に従って並べ替える場合は、標準ライブラリ提供的な機能を利用するのが効率的です。以下のコードでは、整数のリストを自然順序(昇順)でソートする基本的な実装を示しています。 import java.util.Arrays; import java.util.List; import java ...

7月16日 00:29 投稿

UKIEPC 2017 プログラミングコンテスト問題解説

Problem A: Alien Sunset 各惑星の自転周期、日の出時刻、日の入り時刻を格納します。自転周期の最大値(max_period)を求め、0からmax_period×1825までの時間を列挙します。各時間について全ての惑星で夜間であることを確認し、条件を満たす最初の時刻を出力します。 #include <bits/stdc++.h> using namespace std; struct Planet { int period, sunrise, sunse ...

7月15日 16:15 投稿

配列の昇順ソートを実現するための基本的なソートアルゴリズム

一般的なソートアルゴリズムについて、それぞれの動作原理と実装例を紹介します。 挿入ソート 挿入ソートは、すでにソート済みの部分列に新しい要素を適切な位置に挿入していく手法です。 具体的には、未処理の各要素を既存のソート済み領域と比較し、正しい場所に配置します。 特性: ほぼソート済みのデータに対して非常に効率的。 時間計算量: O(N^2)。 空間計算量: O( ...

7月2日 16:09 投稿

C++ 初級基礎:標準ライブラリ活用法

C++ の基本的な標準ライブラリ機能について、実践的な観点から整理します。 1. 入出力と基本設定 #include <bits/stdc++.h> using namespace std; // 入出力同期の非同期化(入出力PEED向上) ios::sync_with_stdio(false); cin.tie(nullptr); C++ のストリーム(cin/cout)と C 言語の関数(scanf/printf)は混在を避けることが推奨されます。混在すると入出力 ...

6月3日 17:42 投稿

図書管理・日付処理・アカウント表示・連絡先リスト操作の実装

以下に4つの実験課題の実装内容を示します。 実験4:図書情報のソートと売上集計 図書情報を保持する構造体配列を用い、売上部数に基づく降順ソートと売上高の合計計算を行います。 #include <stdio.h> #include <stdlib.h> #define NUM_BOOKS 10 typedef struct { char isbn[20]; char title[80]; char author[80]; double price; in ...

5月31日 12:31 投稿