Mundarija:
Video: C++ da bog'langan ro'yxatda pufakchali tartibni qanday yaratasiz?
2024 Muallif: Lynn Donovan | [email protected]. Oxirgi o'zgartirilgan: 2023-12-15 23:54
Pufakchani saralash uchun biz quyidagi amallarni bajaramiz:
- 1-qadam: 2 ta qo'shni tugundagi ma'lumotlar o'sish tartibida yoki yo'qligini tekshiring. Agar yo'q bo'lsa, ikkita qo'shni tugunning ma'lumotlarini almashtiring.
- 2-qadam: 1-o'tish oxirida eng katta element ro'yxat oxirida bo'ladi.
- 3-qadam: Barcha elementlar boshlanganda biz tsiklni tugatamiz.
Shu tarzda, C++ da bog'langan ro'yxatda qabariq tartiblash qanday yaratiladi?
Pufakchani saralash uchun biz quyidagi amallarni bajaramiz:
- 1-qadam: 2 ta qo'shni tugundagi ma'lumotlar o'sish tartibida yoki yo'qligini tekshiring. Agar yo'q bo'lsa, ikkita qo'shni tugunning ma'lumotlarini almashtiring.
- 2-qadam: 1-o'tish oxirida eng katta element ro'yxat oxirida bo'ladi.
- 3-qadam: Barcha elementlar boshlanganda biz tsiklni tugatamiz.
Xuddi shunday, pufakchali sort C++ nima? Pufakcha saralash . In pufakchali tartiblash , elementlar kabi saralangan ular asta-sekin " qabariq " (yoki ko'tarilish) massivdagi to'g'ri joylashuviga, masalan pufakchalar bir stakan soda ichida ko'tariladi. The pufakchali tartiblash massivning qo'shni elementlarini qayta-qayta taqqoslaydi. Birinchi va ikkinchi elementlar taqqoslanadi va tartibsiz bo'lsa almashtiriladi.
Ikkinchidan, bog'langan ro'yxatdagi ma'lumotlarni qanday saralaysiz?
Algoritm
- Ikki atributga ega bo'lgan tugun sinfini yarating: ma'lumotlar va keyingi.
- Ikki atributga ega bo'lgan SortList boshqa sinfini yarating: bosh va quyruq.
- addNode() ro'yxatga yangi tugun qo'shadi:
- sortList() roʻyxat tugunlarini oʻsish tartibida tartiblaydi.
- display() ro'yxatda mavjud tugunlarni ko'rsatadi:
Bog'langan ro'yxat uchun eng yaxshi tartiblash algoritmi qaysi?
Birlashtirish tartibi ko'pincha bog'langan ro'yxatni saralash uchun afzallik beriladi. Bog'langan ro'yxatning sekin tasodifiy kirish ishlashi ba'zi boshqa algoritmlarni (masalan, tez saralash ) yomon ishlaydi va boshqalar (masalan yig'indisi ) mutlaqo mumkin emas. Bosh bog'langan ro'yxatning saralanadigan birinchi tugun, headRef esa boshga ko'rsatgich bo'lsin.