マージソートのアルゴリズム解説
#### 目次
- - 図解
- 時間計算量
- アルゴリズムの概要
- コア実装
- 完全な実装コード
- テストケース
- - - 入力例
- 出力例
図解
時間計算量
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 投稿