Мазмуну:

C++ тилиндеги шилтемеленген тизмеде көбүктүү сортту кантип түзөсүз?
C++ тилиндеги шилтемеленген тизмеде көбүктүү сортту кантип түзөсүз?

Video: C++ тилиндеги шилтемеленген тизмеде көбүктүү сортту кантип түзөсүз?

Video: C++ тилиндеги шилтемеленген тизмеде көбүктүү сортту кантип түзөсүз?
Video: Кіріспе. C++ Тілінде бағдарламалау. 2024, Май
Anonim

Көбүктү сорттоо үчүн биз төмөнкү кадамдарды аткарабыз:

  1. 1-кадам: 2 чектеш түйүндөрдөгү маалыматтар өсүү тартибинде же жокпу, текшериңиз. Болбосо, 2 чектеш түйүндөрдүн маалыматтарын алмаштырыңыз.
  2. 2-кадам: 1-өткөрүүнүн аягында эң чоң элемент тизменин аягында болот.
  3. 3-кадам: Бардык элементтер башталганда циклди токтотобуз.

Ушундай жол менен C++ тилиндеги шилтемеленген тизмеде көбүктүү сортту кантип түзө аласыз?

Көбүктү сорттоо үчүн биз төмөнкү кадамдарды аткарабыз:

  1. 1-кадам: 2 чектеш түйүндөрдөгү маалыматтар өсүү тартибинде же жокпу, текшериңиз. Болбосо, 2 чектеш түйүндөрдүн маалыматтарын алмаштырыңыз.
  2. 2-кадам: 1-өткөрүүнүн аягында эң чоң элемент тизменин аягында болот.
  3. 3-кадам: Бардык элементтер башталганда циклди токтотобуз.

Ошо сыяктуу эле, C++ көбүкчөлөрү деген эмне? Bubble Sort . Ичинде көбүк сорту , элементтер сыяктуу сорттолгон алар акырындык менен" көбүк " (же көтөрүлүү) массивдеги туура жайгашкан жерине, мисалы көбүкчөлөр бир стакан содада көтөрүлүп жатат. The көбүк сорту массивдин чектеш элементтерин кайра-кайра салыштырат. Биринчи жана экинчи элементтер салыштырылат жана иштебей калса алмаштырылат.

Экинчиден, шилтемеленген тизмедеги маалыматтарды кантип иреттейсиз?

Алгоритм

  1. Эки атрибутка ээ класс түйүнүн түзүңүз: маалымат жана кийинки.
  2. Эки атрибуттары бар башка SortList классын түзүңүз: баш жана куйрук.
  3. addNode() тизмеге жаңы түйүн кошот:
  4. sortList() тизменин түйүндөрүн өсүү тартибинде иреттейт.
  5. display() тизмеде бар түйүндөрдү көрсөтөт:

Шилтемеленген тизме үчүн эң жакшы сорттоо алгоритми кайсы?

Бириктирүү сорту көбүнчө шилтемеленген тизмени сорттоо үчүн тандалат. Шилтемеленген тизменин жай кокус жетүү иштеши кээ бир башка алгоритмдерди түзөт (мисалы тез сорттоо ) начар аткарат жана башкалар (мисалы heapsort ) таптакыр мүмкүн эмес. Head - иргеле турган шилтемеленген тизменин биринчи түйүнү, ал эми headRef - баштын көрсөткүчү болсун.