数字出現回数の統計
ある科学研究の調査で得られた自然数がn個あり、それぞれの数は1500000000(1.5×10⁹)以下である。異なる数の個数は10000個以下である。与えられた自然数それぞれの出現回数をカウントし、自然数の昇順に結果を出力する。
入力形式最初の行には整数nが与えられる。続くn行には自然数が一つずつ書かれている。
出力形式異なる数の個数m行が出力される。各行には自然数とその ...
8月8日 06:20 投稿
ソートアルゴリズムの種類と実装
1. ソートの概念と応用
ソートとは、一連のレコードを特定のキーに基づいて昇順または降順に並べ替える操作です。ソートアルゴリズムにはいくつかの重要な特性があります。
安定性:ソート前のシーケンスに同じキーを持つ複数のレコードが存在する場合、ソート後もこれらのレコードの相対的な順序が維持される場合、そのアルゴリズムは「安定」です。例えば、元のシーケン ...
7月7日 16:15 投稿
C言語における挿入ソートの仕組みと最適化実装
挿入ソートの基本概念
C言語における挿入ソート(Insertion Sort)は、小規模なデータや部分的に整列済みのデータに対して高い効率を発揮する整列アルゴリズムである。未整列の要素を順番に取り出し、既に整列済みの領域内で適切な挿入位置を後方から探索して挿入することで、全体の順序を構築していく仕組みを持つ。
標準的な挿入ソートの実装
以下に、挿入ソートの基本 ...
5月25日 04:03 投稿
C++による基本ソートアルゴリズムの実装ガイド
バブルソート
時間計算量はO(n²)で、追加のメモリ領域を必要としないインプレースソートである。
アルゴリズムの仕組み
隣接する2つの要素を順次比較し、大小関係が逆であれば交換を行う。先頭から末尾まで走査すると、最大値が配列の最後尾に移動する。次に、末尾を除いた範囲で同様の操作を繰り返すことで、未整列部分の最大値が順に後方へ沈んでいく。
実装例
#include ...
5月20日 00:45 投稿
挿入ソートの原理と実装
挿入ソート(Insertion Sort)は、配列を部分的に整列させながら全体をソートしていくアルゴリズムである。既に整列された部分に対して、次の要素を適切な位置に挿入することで、徐々に整列範囲を広げていく。
アルゴリズムの流れ
最初の要素を「整列済み」とみなす。
次の要素を取り出し、整列済み部分の末尾から先頭に向かって比較を行う。
取り出した要素が比較 ...
5月19日 20:41 投稿