
2025 Автор: Lynn Donovan | [email protected]. Акыркы өзгөртүү: 2025-01-22 17:31
Көбүктү сорттоо үчүн биз төмөнкү кадамдарды аткарабыз:
- 1-кадам: 2 чектеш түйүндөрдөгү маалыматтар өсүү тартибинде же жокпу, текшериңиз. Болбосо, 2 чектеш түйүндөрдүн маалыматтарын алмаштырыңыз.
- 2-кадам: 1-өткөрүүнүн аягында эң чоң элемент тизменин аягында болот.
- 3-кадам: Бардык элементтер башталганда циклди токтотобуз.
Ушундай жол менен C++ тилиндеги шилтемеленген тизмеде көбүктүү сортту кантип түзө аласыз?
Көбүктү сорттоо үчүн биз төмөнкү кадамдарды аткарабыз:
- 1-кадам: 2 чектеш түйүндөрдөгү маалыматтар өсүү тартибинде же жокпу, текшериңиз. Болбосо, 2 чектеш түйүндөрдүн маалыматтарын алмаштырыңыз.
- 2-кадам: 1-өткөрүүнүн аягында эң чоң элемент тизменин аягында болот.
- 3-кадам: Бардык элементтер башталганда циклди токтотобуз.
Ошо сыяктуу эле, C++ көбүкчөлөрү деген эмне? Bubble Sort . Ичинде көбүк сорту , элементтер сыяктуу сорттолгон алар акырындык менен" көбүк " (же көтөрүлүү) массивдеги туура жайгашкан жерине, мисалы көбүкчөлөр бир стакан содада көтөрүлүп жатат. The көбүк сорту массивдин чектеш элементтерин кайра-кайра салыштырат. Биринчи жана экинчи элементтер салыштырылат жана иштебей калса алмаштырылат.
Экинчиден, шилтемеленген тизмедеги маалыматтарды кантип иреттейсиз?
Алгоритм
- Эки атрибутка ээ класс түйүнүн түзүңүз: маалымат жана кийинки.
- Эки атрибуттары бар башка SortList классын түзүңүз: баш жана куйрук.
- addNode() тизмеге жаңы түйүн кошот:
- sortList() тизменин түйүндөрүн өсүү тартибинде иреттейт.
- display() тизмеде бар түйүндөрдү көрсөтөт:
Шилтемеленген тизме үчүн эң жакшы сорттоо алгоритми кайсы?
Бириктирүү сорту көбүнчө шилтемеленген тизмени сорттоо үчүн тандалат. Шилтемеленген тизменин жай кокус жетүү иштеши кээ бир башка алгоритмдерди түзөт (мисалы тез сорттоо ) начар аткарат жана башкалар (мисалы heapsort ) таптакыр мүмкүн эмес. Head - иргеле турган шилтемеленген тизменин биринчи түйүнү, ал эми headRef - баштын көрсөткүчү болсун.