Танлаш орқали саралаш
Мазкур усул қуйидаги тамойилларга асосланган:
1. Энг кичик калитга эга элемент танланади.
2. Ушбу элемент биринчи элемент билан ўрин алмашинади.
3. Кейин мазкур жараён қолган n-1, n-2 элементлар билан такрорланиб, то битта энг “катта” элемент қолгунча давом эттирилади.
for i := 1 to n - 1 do
begin
x := a[i];
k := i;
for j := i + 1 to n do
if a[j] < x then
begin
k := j;
x := a[k];
end;
a[k] := a[i];
a[i] := x;
end;
Алгоритм самарадорлиги:
Массив тартибланганда ўринлаштиришлар сони
Массив тескари тартибланганда ўринлаштиришлар сони
Ушбу усул бўйича саралаш бажарилса, энг ёмон холда таққослашлар ва ўринлаштиришлар сони тартиби n2 бўлади.
Пуфаксимон саралаш
Ушбу усулни ғояси қуйидагича: n - 1 марта массивда қуйидан юқорига қараб юриб калитлар жуфти-жуфти билан таққосланади. Агар пастки калит қиймати юқоридаги жуфти калитидан кичик бўлса, у ҳолда улар ўрни алмаштирилади.
Мисол : массив - 4, 3, 7, 2, 1, 6.
Пуфаксимон усулни массив элементларида пастдан-тепага ва тепадан-пастга ўтишни бир вақтда амалга ошириш натижасида яхшилаш мумкин.
Таққослашлар сони:
Алмаштиришлар сони:
“Пуфаксимон” саралаш усулини ҳисоблашга мисол
Берилган мисолда 5 та элементдан иборат массив берилган. Демак, массивда пастдан юқорига (юқоридан пастга) ўтишлар сони 5-1=4 марта бўлади. Мисолдан кўриниб турибдики, алгоритм ички циклда 3 қадамдан бошлаб массивни “бекор” қайта ишлайди, 4-қадамни бажармаса ҳам бўлади.
Берилган усуллнинг афзаллиги:
1) Энг содда алгоритм;
2) амалга ошириш содда;
3) қўшимча ўзгарувчилар шарт эмас.
Камчиликлари:
1) Катта массивларни узоқ қайта ишлайди;
2) Ҳар қандай ҳолатда ҳам ўтишлар сони камаймайди
Quiksort – тез саралаш усули
Ғояси: Мазкур усулнинг асосини калитларни танланган калитга нисбатан ажратиш ташкил қилади.
Мисол:
Биринчи ўтишдан кейин танланган элемент ўзининг жойига келиб жойлашади.
“пуфаксимон” усулни яхшилаш.
1) Агар массивда ўтишлар нафақат юқоридан пастга, балки бир вақтнинг ўзида пастдан юқорига ҳам бўлса, у ҳолда “енгил” элементлар “юқорига сузиб” чиқади ва “оғир” элементлар эса “чўкади”.
Массивда “бекор” ўтишни йўқ қилиш учун, ташқи циклда массив сараланганлигини текширувчи белги қўйиш лозим.
Алгоритм
for i := 2 to n do
for j := n downto i do
if a[j] < a[j - 1]then
begin
x := a[j - 1];
a[j - 1] := a[j];
a[j] := x;
end;
end;
end;
Ўринлаштириш ва таққослашлар сони: (n* log( n )).
Топшириқ
Таъмирлаш устахонасида бир нечта (N та) машина бор. Улар тўғрисида қуйидаги маълумотларга эгамиз: рақами, маркаси, эгасини исми, охирги марта таъмирланганлиги санаси (куни, ойи, йили), таъмирдан чиқиши лозим бўлган сана (кун, ой, йил).
Тўғридан-тўғри қўшиш усулидан фойдаланиб, саралашни амалга ошириш дастурини ишлаб чиқиш (вариантга мос равишда)::
Машина эгаларини исмлари бўйича алифбо тартибида жойлаштирилсин ва мос равишда уларнинг машиналари ҳақидаги маълумотлар чиқарилсин.
Автомобилларни таъмирланиш тартиби ишлаб чиқилсин. Бу ерда таъмир тугаши санаси қайси автомобил учун эртароқ бўлса шунга биринчи навабатда хизмат кўрсатилади.
"Жигули" маркасидаги машиналарни олдинги таъмир санаси бўйича камайиш тартибида жойлаштирилсин.
Олдинги таъмир қилинганлар сони 2 га тенг бўлган машиналар рақамлари бўйича камайиш тартибида жойлаштирилсин.
Олдин таъмир қилинмаган машиналарни таъмирдан чиқиш санаси бўйича ўсиш тартибида жойлаштиринг.
"Мерседес" маркали машина эгаларини алифбо бўйича тескари тартибда жойлаштиринг.
Бошқаларидан олдинроқ таъмирланадиган машиналарни уларни маркаси бўйича алифбо тартибида жойлаштиринг (таъмир тугатилиши санаси 31.12.2007 дан эрта).
"Жигули" маркасидаги машиналарни рақамлари бўйича ўсиш тартибида жойлаштиринг.
Ўтган йилдан бери таъмирланмаган машиналарни уларнинг эгалари исмлари бўйича алифбо тартибида жойлаштиринг.
Кейинги ойда таъмирланиши лозим бўлган машиналарни охирги марта таъмирланганлик санаси бўйича ўсиш тартибида келтиринг.
Олдинги таъмир қилинганлар сони 3 мартадан кўп бўлган машиналарни эгалари исмларини алифбо бўйича тескари тартибда жойлаштиринг.
"Мерседес" маркасидаги машиналарни рақамлари бўйича камайиш тартибида жойлаштиринг.
N та талабадан иборат гуруҳ тузилсин. Қуйидаги маълумотлар берилган: фамилия, исм, туғилган йили, фанлар бўйича баҳоси: МСваА, олий математика, физика, дастурлаш, топширган сессия умумий бали.
Тўғри танлов усулидан фойдаланиб, саралашни амалга ошириш дастурини ишлаб чиқиш (вариантга мос равишда):
Талабалар фамилияларини алифбо тартибида.
Талабалар фамилияларини алифбо бўйича тескари тартибда.
Талабаларни ёши бўйича ўсиш тартибда.
Талабаларни ёши бўйича камайиш тартибда.
Талабаларни умумий бали бўйича ўсиш тартибда.
Топшириқ
Контейнерлар рўйхати. Рўйхат операциялари.
Боғланган рўйхатлар. Биргаликда боғланган рўйхат билан ишлаш
Богланган рўйхатлар. Иккала боғланган рўйхат билан ишлаш
Контейнер стеки. Стекнинг асосий операциялари
Стекнинг тузилиши. Массив ва рўйхатлар билан бажариш стек
Навбатсиз идиш. Навбатдаги асосий операциялар
Таркибнинг тузилиши. Бир қатор ва рўйхатлар ёрдамида навбатни амалга ошириш
Тузилма дек. Дек билан асосий амаллар
Иккилик дарахтларни ташкил қилиш .Иккилик дарахтнинг операциялари
Иккилик қидириш дарахти. Дарахт балантлиги ва визуализатсияси
Мувозанатли иккилик дарахтлар. Мувозанатлаш операциялари
График тушунчаси, Қисқа йўлни қидириш алгаритмлари
График тушунчаси. Тақдимот усуллари ва ечимлари.
Синов турларини ўрганиш, Синовни режалаштириш.
Бирлаштирилган ёки интегратсиялашган синов учун. маълумотларнинг тўпламлари Синов тўпламларни яратиш.
Маълумотни намойиш қилиш моделларини ўрганиш. UML моделлаштириш тили билан ишлаш.
Маълумотни намойиш қилиш моделларини ўрганиш.UML моделлаштириш тили билан ишлаш.
Do'stlaringiz bilan baham: |