マージソートのアルゴリズム解説

#### 目次 - - 図解 - 時間計算量 - アルゴリズムの概要 - コア実装 - 完全な実装コード - テストケース - - - 入力例 - 出力例 図解 時間計算量 n log n アルゴリズムの概要 配列を再帰的に分割し、サイズが1の要素単位に分解していきます。 まず、サイズ1の要素同士を比較し、小さい方を一時配列に格納します。一方の配列が尽き ...

5月26日 10:45 投稿

Codeforces 920 (div3) 解法まとめ

問題 A - Codeforces 入力された四つの座標から、正方形の面積を求める問題です。各辺が軸に平行な正方形かどうかを判定し、辺の長さを計算して面積を求めます。 #include <bits/stdc++.h> using namespace std; typedef long long LL; int main() { int cases; cin >> cases; while(cases--) { int x1, y1, x2, y2, x3, y3, x4, y4; ...

5月25日 02:21 投稿

東華大学復試OJ每日3題練習・第103〜105題の振り返り

基本問題103:入力された文字列から数字を読み取り、'5'をスペースとして扱い、その結果を昇順に並び替えて出力する。 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int count; scanf("%d", &count); getchar(); while(count--) { char line[1000]; fgets(line, sizeof(l ...

5月21日 19:11 投稿

『データ構造』課程設計(C/C++版):植物百科データの管理と分析

目次 第1関:植物情報の追加 第2関:植物情報の削除 第3関:植物情報の変更 第4関:順序表に基づく順次探索 第5関:連結リストに基づく順次探索 第6関:順序表に基づく二分探索 第7関:二分探索木に基づく探索 第8関:オープンアドレス法に基づく ...

5月21日 18:00 投稿

ソートアルゴリズムの例

様々な大企業で採用面接を経験し、よく使用されるソートアルゴリズムについて解説します。 配列のクイックソート import java.util.Arrays; import java.util.Random; public class SortExample { public static void main(String[] args) { int[] numbers = new int[10]; Random rand = new Random(); for (int i = 0; i < 10; i++) { ...

5月20日 22:11 投稿

挿入ソートの原理と実装

挿入ソート(Insertion Sort)は、配列を部分的に整列させながら全体をソートしていくアルゴリズムである。既に整列された部分に対して、次の要素を適切な位置に挿入することで、徐々に整列範囲を広げていく。 アルゴリズムの流れ 最初の要素を「整列済み」とみなす。 次の要素を取り出し、整列済み部分の末尾から先頭に向かって比較を行う。 取り出した要素が比較 ...

5月19日 20:41 投稿

マージソートのアルゴリズムとその実装

配列マージの基本 マージソートの核となる処理は、すでに整列済みの2つの部分配列を効率的に結合することです。たとえば、ar1[] = {1,2,3,4} と ar2[] = {3,4,5,6,7} の2つの配列があるとします。これらを効率的にマージするには、それぞれの配列にポインタを用意しておき、値を比較しながら新しい配列に格納していきます。 #include <stdio.h> #include <stdli ...

5月14日 18:52 投稿