Alqoritmlər / Tərsinə çevirmək

Tərsinə çevirmək

Siyahının elementlərini əks sıraya düzmək.

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.

tərsinə çevirmək

Addımlar

  1. sol — birinci elementin indeksi, sag — sonuncunun.
  2. Bu iki elementin yerini dəyişin.
  3. sol-u bir addım sağa, sag-ı bir addım sola çəkin.
  4. sol hə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