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 投稿

基本的ソートアルゴリズムと応用問題の実装例

概要 本稿では、競技プログラミングやコーディングテストで頻出する「ソート」を中心とした 4 問の解法を紹介する。各問とも標準的なアルゴリズムを用いることで簡潔に解けるため、実装テクニックを押さえておくと非常に有利である。 問題 1:単純な昇順ソート 問題文 整数列が与えられる。昇順に並べ替えて出力せよ。 解法 要素数が 105 程度であれば、単純な挿入ソート ...

5月18日 14:38 投稿

ICPC 2018 横浜大会における主要アルゴリズムの解説

2018年に開催されたICPCアジア地区予選横浜大会の出題問題より、いくつかの典型的な実装手法とアルゴリズムの考え方を解説します。 1. 文字列と数値の混合ソート 文字列中に含まれる数値とアルファベットを個別に識別し、辞書順および数値の大きさに基づいた比較を行う問題です。主なロジックは以下の通りです。 両文字列が完全に一致する場合は対象外とする。 ...

5月16日 06:48 投稿