Həyatdan nümunə. Rəfdəki kitabları tərs sıraya düzmək lazımdır. Ən soldakı ilə ən sağdakının yerini dəyişirsiniz. Sonra soldan ikinci ilə sağdan ikincinin. Ortaya çatanda iş bitir.
Proqramda iki indeks saxlanılır: sol və sag. Onlar bir-birinə doğru hərəkət edir.
Addımlar
sol— birinci elementin indeksi,sag— sonuncunun.- Bu iki elementin yerini dəyişin.
sol-u bir addım sağa,sag-ı bir addım sola çəkin.solhələsag-dan kiçikdirsə, 2-ci addıma qayıdın.
Nümunə
Siyahı: [1, 2, 3, 4, 5].
| addım | sol | sag | dəyişilir | siyahı |
|---|---|---|---|---|
| başlanğıc | 0 | 4 | — | [1, 2, 3, 4, 5] |
| 1 | 0 | 4 | 1 və 5 | [5, 2, 3, 4, 1] |
| 2 | 1 | 3 | 2 və 4 | [5, 4, 3, 2, 1] |
| 3 | 2 | 2 | — ortaya çatıldı | [5, 4, 3, 2, 1] |
Cavab: [5, 4, 3, 2, 1].
Kod
a = [1, 2, 3, 4, 5]
sol = 0
sag = len(a) - 1
while sol < sag:
k = a[sol]
a[sol] = a[sag]
a[sag] = k
sol = sol + 1
sag = sag - 1
print(a)
Kod sətir-sətir
| sətir | nə edir |
|---|---|
sol = 0 |
Sol indeks — birinci element. |
sag = len(a) - 1 |
Sağ indeks — sonuncu element. |
while sol < sag |
sol sag-dan kiçik olduqca təkrarla. |
k = a[sol] |
Yerini dəyişmə başlayır (əvvəlki dərs). |
a[sol] = a[sag] |
Sağdakı sola yazılır. |
a[sag] = k |
Köhnə soldakı sağa yazılır. |
sol = sol + 1 |
Sol indeks bir addım sağa. |
sag = sag - 1 |
Sağ indeks bir addım sola. |
Qeyd
while— «şərt doğru olduqca təkrarla». Neçə dəfə olacağı əvvəlcədən yazılmır.- Elementlərin sayı təkdirsə, ortadakı yerində qalır.
- Python-da hazır üsul var:
a.reverse().