Algoritm nima?

Algoritmlarni qanday boshqarishni o'rganing

Algoritm - bu ko'rsatmalar to'plami. Bu ta'rif haqiqatan ham oddiy. Algoritm bu kabi ko'rsatmalar berayotgandek oson bo'lishi mumkin:

  1. Ko'chaga boringlar
  2. Birinchi o'ng tomonga o'ting
  3. Chapdagi ikkinchi uyni toping
  4. Eshikni qoqib oling va
  5. Paketni yetkazing.

Ammo algoritm ta'rifi oddiy bo'lsa-da, haqiqiy ma'no va hayotimizga qanday ta'sir qilishi juda murakkab bo'lishi mumkin.

Algoritmning namunasi

Kundalik hayotimizda foydalanadigan algoritmning umumiy misoli - bu retsepti. Ushbu ko'rsatmalar to'plami bizga kerakli barcha tarkiblarni beradi va bu tarkibiy qismlarga nima qilish kerakligini ko'rsatib beradi. Quloq soladi, shunday emasmi?

Ammo o'lchash kosasi qaerda saqlanayotganini bilmasangiz nima bo'ladi? Uni topish uchun algoritm kerak. Hatto o'lchash kosasidan qanday foydalanish haqida algoritm kerak.

Shunday qilib, algoritm ko'rsatmalar to'plami bo'lsa-da, bu ko'rsatmalarni kim yoki nima sharhlayotganini hisobga olish kerak. Misol uchun, agar siz uyingizdan eng yaqin xaridorlarga qanday qilib mahsulotni sotib olishni batafsilroq bilib olsangiz, do'stingiz faqat uyingizning qaerdaligini bilib qolsa, u do'konga qanday borishni bilib oladi. Ular ma'lum bir oziq-ovqat do'koni, boshqa birining do'sti uyidan topish qobiliyatiga ega emaslar.

Bu algoritm oddiy va murakkab bo'lishi mumkin. Va kompyuter algoritmlari haqida gapirganda, kompyuterning ishlashi mumkin bo'lgan narsalarni anglash algoritmlarni shakllantirishning asosiy qismidir.

Algoritmlarni qanday ajratish mumkin

Yaratilgan eng dastlabki algoritmlardan biri balonlarni tartiblash tartibiga aylandi. Bubble sort - raqamlar, harflar yoki so'zlarni ma'lumotlar majmui orqali ko'chirib o'tkazish, har bir qadriyatni birma-bir taqqoslash va kerak bo'lganda ularni almashtirish usuli.

Bu loop algoritm narsa almashtirishga hojat qoldirmasdan butun ro'yxat bo'yicha harakatlanmaguncha takrorlanadi, ya'ni qiymatlar to'g'ri tartiblangan degan ma'noni anglatadi. Ushbu turdagi algoritm tez-tez takrorlanadigan algoritm deb ataladi, chunki u vazifani tugatguncha o'z-o'ziga o'chiradi.

Algoritm oddiy ko'rinishi mumkin:

  1. Birinchi qiymatga o'ting.
  2. Agar kerak bo'lsa, keyingi qiymati va almashtirish pozitsiyasini tekshiring
  3. Keyingi qiymatga o'ting va taqqoslashni takrorlang.
  4. Ro'yxatning oxirida bo'lsak, loop davomida biron bir qiymat almashtirilgan bo'lsa, yuqoriga qayting.

Biroq, qabariqlarning navlari qiymatlarni saralashning eng samarali usuli bo'lib chiqmadi. Vaqt o'tib, kompyuterlar murakkab vazifalarni tezda bajarishga qodir bo'lib qolar, yangi saralash algoritmlari ochildi.

Bunday algoritmlardan biri birinchi ro'yxat bo'yicha ko'zdan kechiradi va tartiblangan qiymatlarning ikkinchi ro'yxatini yaratadi. Ushbu usul faqatgina bitta ro'yxatni asl ro'yxat orqali amalga oshiradi va har bir qiymat bilan qiymatni qo'yish uchun to'g'ri joyni topguniga qadar ikkinchi ro'yxat orqali pastadir. Odatda, u ko'pikli tartibida ishlatishdan ko'ra samaralidir.

Bu erda algoritmlar chindan ham aqldan foydalanish mumkin. Yoki siz qanday qarashingizga qarab, albatta, qiziqarli.

Ko'pikli tartiblash usuli ko'p jihatdan qiymatlarni saralashning eng samarasiz usullaridan biri deb hisoblansa-da, haqiqiy ro'yxat to'g'ri yozilgan bo'lsa, balonlarni tartiblash eng samarali usullardan biri bo'lishi mumkin. Buning sababi shundaki, bu holda, ko'pikli tartibli algoritm ro'yxat bo'yicha bir martadan o'tadi va u to'g'ri tartiblanganligini aniqlaydi.

Afsuski, biz ro'yxatni tasavvur qilishimiz mumkinligini har doim ham bilmaymiz, shuning uchun ko'p sonli ro'yxatlar bo'yicha o'rtacha foydalanish uchun eng samarali usul bo'lib qoladigan algoritmni tanlashimiz kerak.

Bubble sortidan nimani o'rganamiz?

Facebook algoritmlari va kundalik hayotda ko'proq narsalar

Algoritmlar odamlarga har kuni yordam beradi. Internetni qidirganingizda, eng yaxshi qidiruv natijalarini topishga urinib ishlaydigan algoritm bor. Smartfoningizdan yo'nalishlar so'rang va algoritm siz uchun eng yaxshi yo'lni belgilaydi. Va siz Facebook-ga tashrif buyurganingizda, bizning do'stlarimiz Facebook-ning qaysi xabarlari biz uchun muhim bo'lgan algoritmga qaror qiladi. (Umid qilamizki, bizning do'stlarimiz qaysi Facebook bizni eng yaxshi deb bilishini bilishmaydi!)

Biroq, algoritmik fikrlash bizni kompyuter hayotimizdan tashqariga olib kelishi mumkin. Hatto yaxshi sendvichni yaratishga yordam berishi mumkin.

Keling, ikkita bo'lak nondan boshlang, bir tilimdagi xantalni va boshqa tilimdagi mayonezni tarqataman. Men mayonez bilan mayonez bilan bir pishloqli pishiriq qo'ydim, uning ustiga bir nechta xamir, ba'zi salat, ikki pomidor pomidor va keyin uni xantal bilan bu tilim bilan yoping. Yaxshi sendvich, to'g'rimi?

Men uni darhol iste'mol qilsam. Ammo men uni stolga bir oz vaqt ajratib qo'ysam, bu yuqori pishgan nonni pomidorning bir qismini pishirishdan toza bo'lishi mumkin. Buni oldindan kutmagan bir muammo, va shunga qaramay, ko'p yillar mobaynida sendvichlar qilishim mumkin edi, lekin keyin men yaxshi sandvich yaratish uchun mening algoritmni o'zgartirish yo'llarini o'ylab ko'rishim mumkin.

Misol uchun, pomidorni qutqarishim mumkin edi. Lekin men bu pomidor ta'mini yo'qotmoqchi emasman. Buning o'rniga, pomidorni non va maruldan keyin sendvichga qo'yish mumkin. Bu salat pomidor va non o'rtasida himoya to'siqni hosil qilish imkonini beradi.

Bu algoritm qanday rivojlanadi. Va algoritm kompyuterda algoritm sifatida ishlamaydi. Algoritm jarayonlar va jarayonlarning barchasi bizning atrofimizdir.