Alqoritmi nədir?

Alqoritmlərin dünyanı necə idarə etdiyini kəşf edin

Bir alqoritm bir təlimat dəsti. Tərif həqiqətən sadədir. Bir alqoritm bu kimi göstərişlər vermək kimi asan ola bilər:

  1. Küçəyə çıxın
  2. İlk hüququ edin
  3. Solda ikinci ev tapın
  4. Qapıya vur və
  5. Paketi verin.

Ancaq alqoritm tərifi sadədir, əsl məna və həyatımıza necə təsir göstərə biləcəyi olduqca mürəkkəbdir.

Bir alqoritm nümunəsi

Gündəlik həyatımızda istifadə etdiyimiz bir alqoritmanın ümumi nümunəsi bir reseptdir. Bu təlimat dəsti bizə lazım olan bütün maddələr verir və bu maddələrlə nə etmək lazım olduğunu istiqamətləndirir. Asan səslənir, sağ mı?

Amma ölçmə kubağının harada saxlandığını bilmirsən? Bunu tapmaq üçün alqoritm lazımdır. Ölçü kubokunun necə istifadə edilməsi barədə bir alqoritm lazımdır.

Bir alqoritm bir təlimat dəsti olarkən, həm də bu təlimatları kimə və nə şərh edəcəyinə də diqqət yetirməlidir. Məsələn, evinizdən ən yaxın baqqal mağazasına necə gedə biləcəyinizə dair bir yol tarifini verirsəniz, dostunuz yalnız evinizin harada olduğunu bilsəydilər, bu mağazaya necə gedə biləcəyini bilirlər. Onlar bir baqqalın başqa bir dostun evindən danışmağı qadağan edirlər (hələ).

Bir alqoritm həm sadə, həm də mürəkkəb ola bilər. Kompüter alqoritmləri baxımından söhbət edərkən, kompüterin nə edə biləcəyini anlamaq alqoritmlərin formalaşmasının əsas hissəsidir.

Alqoritmlərin çeşidlənməsi necədir

Yaradılan ən erkən alqoritmlərdən biri bubble sıralama qaydası idi. Bubble sırası, hər bir dəyərin dəyərini yan-yana müqayisə edərək və lazım olduqda onları dəyişdirərək, məlumat dəsti ilə loop edərək nömrələri, hərfləri və ya sözləri çeşidləmək üçün bir üsuldur.

Bu loop alqoritm hər hansı bir şey dəyişdirmədən ehtiyac olmadan bütün siyahıdan hərəkət edə bilənə qədər təkrarlanır, yəni dəyərlər düzgün şəkildə sıralanır. Bu tip alqoritm tez-tez təkrarlanan bir alqoritm kimi istinad edilir, çünki bu işi tamamlayana qədər özü üzərində işləyir.

Alqoritm aşağıdakı kimi sadə görünə bilər:

  1. İlk dəyərə gedin.
  2. Lazım olduqda dəyəri növbəti dəyəri və dəyişdirmək mövqeyinə qarşı yoxlayın
  3. Növbəti qiymətə keçin və müqayisəni təkrarlayın.
  4. Listenin sonunda olduqda, döngü zamanı dəyər dəyişdirildiyi təqdirdə yuxarıya dönün.

Amma bubble sortları dəyərləri sıralamaq üçün ən səmərəli yol ola bilməzdi. Vaxt keçdikcə və kompüterlər kompleks vəzifələri tez bir zamanda yerinə yetirmək qabiliyyətinə çatdılar, yeni çeşidləmə alqoritmləri açıldı.

Belə bir alqoritm ilk siyahıdan tarar və sıralanan dəyərlərin ikinci bir siyahısını yaradır. Bu üsul yalnız orijinal siyahıdan bir keçid təşkil edir və hər bir dəyərlə, dəyəri qoymaq üçün düzgün yer tapana qədər ikinci siyahıdan keçər. Adətən, bubble sort üsulundan istifadə etməkdən daha səmərəli olur.

Burada alqoritmlər həqiqətən dəli ola bilər. Və ya həqiqətən maraqlı, ona baxdığınızdan asılı olaraq.

Bubble sort üsulu dəyərləri ən çox səmərəsiz üsullardan biri hesab edərkən, orijinal siyahısı düzgün tərtib edildikdə, baloncuk sortu ən səmərəli ola bilər. Budur, bu halda, bubble sort alqoritm siyahıdan bir dəfə gedəcək və düzgün şəkildə sıralanır.

Təəssüf ki, bizim siyahımızın hər hansı bir şəkildə hazırlanmadığını həmişə bilmirik. Ona görə də çox sayda siyahıdan orta hesabla istifadə etmək üçün ən effektiv bir alqoritm seçmək məcburiyyətindəyik.

Bubble sıralamasından öyrəndiklərimiz

Gündəlik həyatında Facebook alqoritmləri və daha çox

Alqoritmlər insanlara hər gün kömək edir. Vebdə axtararkən, bir alqoritm ən yaxşı axtarış nəticələrini tapmaq üçün çalışır. Smartfonunuzu istiqamətlərdən soruşun və alqoritm sizin üçün ən yaxşı marşruta qərar verir. Və Facebook baxdığınızda, alqoritm dostumuzun Facebook mesajlarından hansı bizim üçün ən vacibdir. (Hörmətli dostlarımız bir Facebookun bizi ən çox sevdiyini düşündüyünü bilmirlər!)

Ancaq alqoritmik düşüncə bizə kompüter həyatımızın kənarında kömək edə bilər. Hətta daha yaxşı bir sendviç qurmağa kömək edə bilər.

Gəlin iki dilim çörəklə başlayıram, bir dilimdə xardal yayıb başqa dilimdə mayonezlə başlayıram. Çörəyə bir dilimlə mayonezlə, bəzisi də bişirilir, bəzək salatı, iki dilim pomidor qoyur və üzərinə xardal ilə dilim qoyuram. Yaxşı sandviç, sağ?

Doğrudanmı onu dərhal yeməyəm. Ancaq bir müddət stolun üstünə qoysam, o çörəyin ən yaxşı diliməsi o pomidordan bir qədər nəmləndirə bilər. Mən çox gözlənilən bir problem deyiləm və mən bir neçə il əvvəl fərqlənməmişəm sandviç edə bilərəm, amma bir dəfə mən daha yaxşı bir sendviç qurmaq üçün alqoritmi dəyişdirmək yollarını düşünməyə başlaya bilərəm.

Məsələn, pomidordan xilas ola bilərdim. Amma bu pomidor dadını itirmək istəmirəm. Bunun əvəzinə, mən pomidoru çörək və mərmərdən sonra sandviçə qoyuram. Bu, salatın pomidor və çörək arasında qoruyucu bir maneə yaratmasına imkan verir.

Bir alqoritm necə inkişaf edir. Bir alqoritm olmaq üçün alqoritm bir kompüter tərəfindən işləməməlidir. Bir alqoritm bir prosesdir və proseslər ətrafımızda.