Yechim: Ha Yechim: Ha. Biz barcha imkoniyatlarni tekshirayotganimiz sababli, algoritm agar ular mavjud bo'lsa, juft
raqamlarni olishimizni ta'minlaydi.
int i = 0, j = 0;
uchun (i = 0; i < n; i+
+) {
Vaqt murakkabligi: ( ). Buning sababi, ikkita ichki o'rnatilgan for döngüsü.
for(j = i; j < n; j++) {
Agar element ikki martadan ortiq takrorlansa nima bo'ladi?
Kosmik murakkablik: (1).
Yechim: Qo'pol kuch yondashuvi
Yechim: qo'pol kuch yondashuvi
Qo'pol kuch yondashuvi
Buning oddiy yechimlaridan biri, har bir kirish elementi uchun yig'indisi bo'lgan element mavjudligini tekshiring. Buni
ikkita oddiy for loop yordamida hal qilishimiz mumkin. Ushbu yechim uchun kod quyidagicha berilishi mumkin:
} printf("Elementlar topilmadi: Bunday elementlar yo'q");
}
bekor BruteForceSearch[int A[], int n, int K) {
Yechish: Yechish: Yo‘q. Qarama-qarshilik misoli sifatida = {3, 2, 1, 2, 2, 3} massiv uchun birinchi takrorlangan element
3 ga teng. Lekin inkor qilish texnikasi bilan natija 2 ga teng.
}
vaqt murakkabligini yaxshilay olamizmi?
Muammo- Muammo-11-Muammo uchun-9
}
Muammo- Muammo-9 Elementlar massivi berilgan. Massivdagi ikkita elementni topingki, ularning yig'indisi berilgan
elementga teng bo'lsin?
Muammo - muammo - 8
Massiv-10-masala Massiv tartiblanmagan bo'lsa ham 9-masalaning yechimi ishlaydimi?
Bunday holda, biz nima qila olamiz, agar tegishli qiymat allaqachon salbiy bo'lsa, elementni o'tkazib yuborish kifoya.
agar(A[i]+A[j] == K)
{
Muammo-5 uchun muammo-3 texnikasidan (inkor qilish texnikasi) foydalana olamizmi?
qaytish;
,
Machine Translated by Google
Do'stlaringiz bilan baham: |