配列の変換なんですが、下にアルゴリズムを書きますのでよろしくお願いします。
長さnの配列のうち、まえからk個と後ろのk+1〜n個目までとを入れ替える問題です。

�@kがn/2以上のとき、�Dから�F、それ以外は�Aから�Cを行う。
�A配列の先頭からk個目までを作業配列までを作業配列に移す。
�B配列のk+1番目から後ろのn番目までを配列の1番目からn-k個目までに入れる。
�C作業配列のk個を配列のn-k+1番目以降にうつす。
�D配列のk+1番目から最後までを作業配列に転送する。
�E配列の先頭からk番目までをn−k個後ろへ転送する。
�F作業配列のn−k個を配列の先頭からn−kまで転送する。