jami + - 2 uchun ÿ 1 ta taqqoslashni beradi. Yuqoridagi yechim shunday deyiladi.
struct TreeNode
Yechim:
Taqqoslashdan ko'ra kamroq foydalanib, berilgan elementlar to'plamini qurishimiz mumkin (algoritm uchun
bobga qarang). Keyin taqqoslashlar yordamida ikkinchi eng kichikni topamiz
Yechim:
Yechim: Asosiy yechim ikkita halqaga ega bo'lish va barcha turli elementlar uchun maksimal sonni kuzatib
borishdir. Agar maksimal son /2 dan katta bo'lsa, tsikllarni uzing va maksimal songa ega elementni qaytaring.
Agar maksimal son /2 dan oshmasa, ko'pchilik elementi mavjud emas.
}BST;
Muammo- Muammo-42 Element /2 martadan ko'p paydo bo'lsa, ko'pchilik hisoblanadi. Ber va algoritm argument
sifatida elementlar massivini oladi va ko'pchilikni (agar mavjud bo'lsa) aniqlaydi.
int elementi;
int count;
struct TreeNode *chap;
struct TreeNode *o'ng;
Kosmik murakkablik: (1).
+
GetMax() operatsiyasi uchun. Umuman olganda, biz + olamiz
Vaqt murakkabligi: ( ).
Muammo-43- Muammo-42 vaqt murakkabligini () ga yaxshilay olamizmi?
Muammo-41-Muammo-40-ning boshqa yechimi bormi?
BST ga elementlarni birma-bir kiriting va agar element allaqachon mavjud bo'lsa, tugun sonini oshiring. Har
qanday bosqichda, agar tugun soni /2 dan oshsa, qaytib keling. Usul massivning boshida koÿpchilik elementning /
2+1 koÿrinishi mavjud boÿlgan hollarda yaxshi ishlaydi, masalan, {1, 1, 1, 1, 1, 2, 3 va 4}.
Yechish:
Yechish: Shu bilan bir qatorda, raqamlarni 2 ta guruhga bo'ling, turnirga o'xshash usul yordamida eng kattasini
topish uchun ketma-ket /2 taqqoslashni bajaring. Birinchi tur ÿ 1 da maksimal natijani beradi
Ikkilik qidiruv daraxtining tugunlari (ushbu yondashuvda qo'llaniladi) quyidagicha bo'ladi.
Machine Translated by Google
Do'stlaringiz bilan baham: |