ゆるりのこと。

文系営業マンから新米データサイエンティストしています。

アルゴリズム ビジュアル大辞典のアルゴリズムをPython, Goで実装する [線形探索、二分探索]

これらの続きです。

mattsun-plapla.hatenablog.com
mattsun-plapla.hatenablog.com

やること

こちらの書籍に記載されるアルゴリズムPython, Goで実装してみます。
(Goはまだまだホントに初学者です)


リバース

配列など指定された範囲の要素を逆順にすること。
ちょうど真ん中の要素は逆順にならないのでそのまま固定する。
真ん中を軸として対応する左右2つの要素を交換(スワップ)する。
計算量は配列のサイズの半分O(N/2) つまりO(N)である。

N個の要素をもつ配列に対して、左右それぞれの要素をi, j とすると、
i = 0, 1, 2, 3... N/2-1
j = N - (i + 1) = N - i - 1
となる。

実装例

/* */