Ինչ է Ալգորիթմը:

Բացահայտեք, թե ինչպես է ալգորիթմները գործելու աշխարհը

Ալգորիթմը հրահանգների շարք է: Սահմանը շատ պարզ է: Ալգորիթմը հեշտ է, քանի որ նման հրահանգներ է տալիս.

  1. Գնացեք փողոցը
  2. Վերցրեք առաջին իրավունքը
  3. Գտնել ձախ կողմում գտնվող երկրորդ տունը
  4. Թակեք դուռը եւ այնտեղ
  5. Փաթեթի առաքում:

Բայց մինչ ալգորիթմի սահմանումը պարզ է, իսկական իմաստը եւ ինչպես դա ազդում է մեր կյանքին, կարող է բավական բարդ լինել:

Ալգորիթմի օրինակ

Ալեգրիթմը, որը մենք օգտագործում ենք մեր ամենօրյա կյանքում, բաղադրատոմս է: Այս հրահանգների փաթեթը տալիս է մեզ անհրաժեշտ բոլոր բաղադրիչները եւ ուղղորդում այն ​​մասին, թե ինչ անել այդ բաղադրիչների հետ: Հեշտ է հնչում, ճիշտ է:

Բայց, եթե չգիտեք, թե որտեղ է պահվում չափիչ գավաթը: Անհրաժեշտ է գտնել այն ալգորիթմ: Դուք նույնիսկ կարող եք ալգորիթմ ունենալ, թե ինչպես պետք է օգտագործեք չափիչ գավաթ:

Ուստի ալգորիթմը հրահանգների շարք է, այնուամենայնիվ պետք է հաշվի առնել, թե ով կամ ինչ է պատրաստվում մեկնաբանել այդ հրահանգները: Օրինակ, եթե ընկերոջը ուղղորդում եք ձեր տանից մինչեւ մոտակա մթերային խանութը, ձեր ընկերը միայն գիտի, թե ինչպես հասնել այդ խանութին, եթե նրանք իմանան, թե որտեղ է գտնվում ձեր տունը: Նրանք այլեւս ի վիճակի չեն գտնելու այդ մթերային խանութը, այլ ընկերոջ տունը:

Այսպիսով, ալգորիթմը կարող է լինել թե պարզ, թե բարդ: Եվ երբ մենք խոսում ենք համակարգչային ալգորիթմների մասին, հասկանալով, թե համակարգիչը կարող է գործել, դա ալգորիթմերի ձեւավորման հիմնական բաղադրիչն է:

Ինչպես ձեւավոր ալգորիթմներ են ձեւավորվել

Ստեղծված ամենահին ալգորիթմներից մեկը պղպջակային ռեժիմն էր: Bubble տեսակավորումը թվերի, տառերի կամ բառերի տեսակավորումն է տվյալների հավաքածուի միջոցով looping- ի միջոցով, համեմատելով արժեքների յուրաքանչյուր հավաքածուի կողմնորոշումը եւ անհրաժեշտության դեպքում դրանք փոխանակելը:

Այս հանգույցը կրկնվում է մինչեւ ալգորիթմը կարող է ամբողջ ցուցակով անցնել, առանց կարիք փոխելու որեւէ բան, ինչը նշանակում է, որ արժեքները ճիշտ են դասավորված: Այս տեսակի ալգորիթմը հաճախ կոչվում է որպես կրկնվող ալգորիթմ, քանի որ այն ինքնուրույն վերածվում է, մինչեւ այն ավարտի խնդիրը:

Ալգորիթմը կարող է պարզ լինել, ինչպես, օրինակ,

  1. Գնալ դեպի առաջին արժեքը:
  2. Ստուգեք արժեքը հաջորդ արժեքի նկատմամբ եւ անհրաժեշտության դեպքում փոխանակեք դիրքերը
  3. Գնալ հաջորդ արժեք եւ կրկնել համեմատությունը:
  4. Եթե ​​մենք գտնվում ենք ցուցակի վերջում, վերադարձեք վերին, եթե որեւէ արժեք արժեքի փոխանակման ժամանակաշրջան է:

Սակայն փուչիկների տեսակները չեն դարձել արժեքների տեսակավորման ամենաարդյունավետ ձեւը: Ժամանակն անցավ եւ համակարգիչները դարձան արագորեն կատարելագործելու բարդ խնդիրները, նոր դասավորելով ալգորիթմներ:

Այդպիսի ալգորիթմը սկանավորում է առաջին ցուցակի միջոցով եւ ստեղծում է դասավորված արժեքների երկրորդ ցուցակը: Այս մեթոդը միայն մեկ անգամ անցնում է բնօրինակ ցանկով, եւ յուրաքանչյուր արժեքով այն կանցկացնի երկրորդ ցուցակի միջոցով, մինչեւ այն գտնի ճիշտ տեղը արժեքը դնելով: Սովորաբար, դա ավելի արդյունավետ է, քան օգտագործելով պղպջակների տեսակավորման եղանակը:

Սա այն դեպքն է, երբ ալգորիթմները կարող են իսկապես խենթ լինել: Կամ արդյոք հետաքրքիր է, կախված նրանից, թե ինչպես եք նայում դրա վրա:

Թեեւ փուչիկների տեսակավորման մեթոդը համարվում է արժեքների տեսակավորման ամենաարդյունավետ մեթոդներից մեկը, եթե նախնական ցանկը ճիշտ ձեւակերպված է, պղպջակային տեսակավորումը կարող է լինել ամենաարդյունավետը: Դա է պատճառը, որ այս պարագայում պղպջակային տեսակավորման ալգորիթմը ցուցակով կանցնի մեկ անգամ եւ որոշի, որ այն ճիշտ է տեսակավորված:

Ցավոք, միշտ չէ, որ մենք գիտենք, թե արդյոք մեր ցուցակը նախշավոր է, ուստի մենք պետք է ընտրենք այն ալգորիթմը, որը ամենաարդյունավետն է, որպեսզի օգտագործենք միջին թվով ցուցակներում:

Ինչ ենք սովորում, Փուչիկների տեսակից

Facebook ալգորիթմներն ու ավելի շատ առօրյա կյանքում

Ալգորիթմերը աշխատում են ամեն օր օգնելու մարդկանց: Երբ որոնում եք վեբը, ալգորիթմը աշխատանքում է, փորձելով գտնել լավագույն որոնման արդյունքները: Խնդրեք ձեր սմարթֆոնի ուղղություններով, եւ ալգորիթմը որոշում է ձեզ համար լավագույն ճանապարհը: Եվ երբ դուք դիտեք Facebook- ը, ալգորիթմը որոշում է, թե մեր ընկերոջ ֆեյսբուքյան գրառումներից որն է մեզ համար ամենակարեւորը: (Հուսանք, որ մեր ընկերները չգիտեն, թե որ Facebook- ը մեզ դուր է գալիս):

Բայց ալգորիթմով մտածելը կարող է օգնել մեզ հեռու մեր համակարգչի ապրելակերպից: Այն կարող է նույնիսկ օգնել մեզ ավելի լավ սենդվիչ կառուցել:

Եկեք ասենք, ես սկսում եմ երկու կտոր հացով, մի կտորով մանանեխ տարածելու եւ մայոնեզի վրա մեկ այլ կտորի վրա: Ես մի կտոր պանիր դրեցի մայոնեզի վրա, հացահատիկի մի խոզապուխտով, լոլիկի երկու շերտով մի կտորով, այնուհետեւ կտոր կտորով այն մանանեխի կտորով: Լավ սենդվիչ, ճիշտ?

Միանշանակ, եթե ես հենց այնտեղ եմ ուտում: Բայց եթե ես մի քանի ժամ տեւի սեղանի վրա, ապա հացահատիկի այս բարձր կտորը կարող է խմորանալ, որ այդ լոլիկի մի քանի բաղադրիչները թրջվեն: Դա խնդիր չէ, ես չէի սպասում, եւ ես կարող եմ անել սենդվիչներ տարիներ առաջ, նկատելիս, բայց երբ ես անում եմ, կարող եմ մտածել, թե ինչպես ես փոխելու իմ ալգորիթմը, ավելի լավ սենդվիչ կառուցելու համար:

Օրինակ, ես կարող էի ազատվել լոլիկից: Բայց ես չեմ ուզում կորցնել այդ տոմատի համը: Այնպես որ, փոխարենը, ես կարող եմ լոլիկի սենդվիչ դնել հացից եւ գազարից հետո: Սա թույլ է տալիս գազարն ու լոլիկի ու հացի միջեւ պաշտպանական արգելք ստեղծել:

Այսպես է զարգանում ալգորիթմը: Իսկ ալգորիթմը համակարգչի կողմից պետք չէ վարել ալգորիթմ: Ալգորիթմը գործընթաց է, եւ գործընթացները մեր շրջապատում են: