マージソートのアルゴリズムとその実装
配列マージの基本
マージソートの核となる処理は、すでに整列済みの2つの部分配列を効率的に結合することです。たとえば、ar1[] = {1,2,3,4} と ar2[] = {3,4,5,6,7} の2つの配列があるとします。これらを効率的にマージするには、それぞれの配列にポインタを用意しておき、値を比較しながら新しい配列に格納していきます。
#include <stdio.h>
#include <stdli ...
5月14日 18:52 投稿
バイナリツリーの基礎理論と再帰的走査アルゴリズム
バイナリツリーの基本概念
バイナリツリーは計算機科学における重要なデータ構造であり、多くのアルゴリズムでスタックを用いて実装されます。
バイナリツリーの分類
完全二分木 (Full Binary Tree)
すべてのノードが0個または2個の子ノードを持ち、すべての葉ノードが同じ深さにある二分木を完全二分木と呼びます。深さkの完全二分木は2^k-1個のノードを持ちます。
完 ...
5月14日 12:57 投稿
Go言語における関数の実践的な使い方
1. 可変長引数関数
Go言語では、引数の前に省略符号(...)を付けることで、任意の数の引数を受け取る関数を定義できます。
package main
import "fmt"
// 複数の文字列を受け取り、結合して出力する関数
func concat(elements ...string) {
result := ""
for _, elem := range elements {
result += elem + ","
}
fmt.Println(result)
}
fu ...
5月9日 13:56 投稿