Fordított tömb döntés programozási feladatok

Magyarázat a problémát, és algoritmus megoldások

az első elem válik az utolsó és az utolsó először a fordítottja a tömb; második - az utolsó előtti és az utolsó előtti - második; A harmadik elem helyét veszi át a harmadik végétől, és hogy a helyén a harmadik, és így tovább. d. Az ilyen permutációk párokat kell tenni két szor kisebb, mint a hossza a tömb, hogy az, hogy átrendezni az elemek mindaddig, amíg a változó elemek nem felelnek meg a központban a tömb.

Persze, akkor is átrendezheti közepe óta a tömb és mozog a kezdet és a vég. Azonban, a fent leírt folyamat egy kicsit könnyebb.

Ha a tömbnek páratlan számú elem, az egyik elem a közepén a tömb, amely nem rendelkezik egy pár, és hogy nem szükséges csere. Ha a tömb páros számú elemet a közepén ez a gőz, ami szintén csere. Mindenesetre, a száma cserék lesz egyenlő a tömb elemeinek számát egyenletesen osztva 2.

Így, a tömb zajlik a fordított ciklusban, az iterációk számát (átmegy) egyenlő nem több, mint a fele az elemek száma. A hurok teste kicserélt elemek. Ha indexelés (i) egy tömb egyikénél indul, és az elemek száma N, az index az elem, amelyet meg kell cserélni kell az alábbi képlet szerint N-i + 1. Ha indexelés nulla, szemben az elem i megtalálható például az N-i-1.

A forráskód Pascal programozási nyelv

const n = 10;
var
a. sor # 91; 1. N # 93; Az egész szám;
i. byte;
b. integer;
kezdődik
i. = 1 és N do
olvas # 40; egy # 91; én # 93; # 41; ;

i. = 1 és N div 2 do kezdődik
b. = a # 91; én # 93; ;
egy # 91; én # 93;. = a # 91; N - i + 1 # 93; ;
egy # 91; N - i + 1 # 93;. = B;
végén;

i. = 1 és N do
ír # 40; egy # 91; én # 93;. „” # 41; ;

Példa (k) a program a nyelvi Pascal

Kapcsolódó cikkek