Иреттөө алгоритмдери
Иреттөө курал катары: std::sort, компараторлор, структураларды иреттөө.
Иреттөө — олимпиадаларда эң көп колдонулган алгоритм, бирок өзүнчө максат катары эмес, курал катары: иреттөөдөн кийин маселе көбүнчө кескин жөнөкөйлөшөт. Эң жакын эки санбы? Иреттеңиз — алар кошуналардын арасында болот. Ач көз тандообу? Дээрлик ар дайым «... боюнча иреттейли» деп башталат.
Иреттөөнү кол менен жазуу керек эмес: std::sort O(n log n) убакытта иштейт. Аны башкара билүү керек — компаратор, башкача айтканда салыштыруу эрежесин бере билүү.
Өсүү жана кемүү боюнча иреттөө. Киргизиңиз: 5, андан кийин 3 1 4 1 5
Компаратор — «x у дан мурда турушу керекпи» деген функция. [](int x, int y) { return x > y; } лямбдасы кемүүнү берет.
Чыныгы күчү — структураларды каалаган талаа боюнча иреттөө. Окуучуларды баллдары боюнча иреттейли: салыштыруу эрежеси коддон түз окулат.
Киргизиңиз: 3, андан кийин «ат балл» түрүндөгү саптар: Azat 90, Aigul 98, Bek 85
Python
Ушул эле нерсе Python тилинде: key параметри. Ошол эле киргизүү
Билип коюу пайдалуу: std::stable_sort барабар элементтердин тартибин сактайт («баллдар боюнча, барабар болсо — аты боюнча» деп эки өтүү менен иреттегенде маанилүү).
Тапшырма: сөздөрдүн тизмесин адегенде узундугу боюнча, узундуктары барабар болсо — алфавит боюнча иреттеңиз (кеңеш: эки шарттуу компаратор).
Сабакты өттүм деп белгилеп, эки көрсөткүч ыкмасына өтүңүз.