Մեջբերում DavitH-ի խոսքերից Նայել գրառումը
ինձ թվում ա պարզ պիտի լինի որ էտ a չպիտի լիներ այլ x
երկեորդն ել ինչի եմ տարրը առաջինից համեմատում ինձ պետք չի տենց դրա համար էլ for(j=i+1;j<n;j++) սենց եմ գրել
n-ի համար էլ մոռացել եմ հանեմ պիտի 10 լինի
էս ստից վրիպակները կան որորվհետև միանգամից ստեղ եմ գրում կամպիլյացիա չեմ անում
համենայն դեպս ես էս լուծումն եմ ընդունում քոնը շատ խուճուճ ա ու ոնց որ թե երկուսի կարգն ել n քառակուսի ա
Դե բնականաբար առանց կոմպիլյացիայի գրելուց, մանավանդ որ ռեգուլյար էդ գործով չես զբաղվում, սխալներն անխուսափելի են
Ախր ոնց էս ասում, որ առաջինից պետք չի? Չպիտի առաջին տարրը համեմատես 2-րդ ի հետ? Քո ասածով բոլորը կարող ես տեղերով փոխել, բացի առաջինից: իսկ ինչ գիտես, որ առաջինը ամենամեծ տարրն է ու ճիշտ իր տեղում է գտնվում?
Իսկ ինչ վերաբերվում է իմ տարբերակի "խուճուճ" լինելուն, ապա էդ տարբերակը մի քանի նախադասությամբ նկարագրել եմ ու հեչ էլ խուճուճ չի, բայց պրոցեսորի կողմից ավելի արագ պիտի կատարվի, քանի որ քո տված ալգորիթմում զանգվածի ամեն տարր համեմատվում է իրեն հաջորդող բոլոր տարրերի հետ, իսկ իմ բերած տարբերակում զանգվածի ամեն տարր համեմատվում է միայն առաջին տարրի և իր նախորդ տարրի հետ:
Եթե մենակ պայմամնների ստուգման քանակը հաշվենք, ապա իմ մոտ դա վատագույն դեպքում 2n է, սիկ քո տարբերակում n*(n+1)/2~n2/2: Մեծ n-ների պարագայում ուղղակի անհամեմատելի է` 2n<<n2/2
Բայց ասեմ, որ քո բերած ալգորիթմը համարվում է դասականը, իսկ իմ բերած տարբերակը դասական չի, ուղղակի ռեսուրսների տեսանկյունից օպտիմիզացված է