>= A[start] && data < A[mid]) qaytarsa
BinarySearchRotated(A, start, mid - 1, data);
}
}
boshqa
Muammo- Muammo-30 Bitonik qidiruv. Bitonik qidiruv.
// A[mid] <= A[tugatish], tugatish yarmi tartiblangan tartibda. agar
(ma'lumotlar > A[mid] && ma'lumotlar <= A[tugatish])
}
Muammo- Muammo-29 Muammo-28 uchun, biz bir skanerda hal qila olamizmi?
return BinarySearchRotated(A, o'rta + 1, tugatish, ma'lumotlar);
Vaqt murakkabligi:().
Vaqt murakkabligi:().
int BinarySearchRotated(int A[], int start, int finish, int data) {
return BinarySearchRotated(A, o'rta + 1, tugatish, ma'lumotlar);
Massiv, agar u ortib borayotgan butun sonlar ketma-ketligidan keyin darhol kamayuvchi butun sonlar ketma-ketligidan iborat bo'lsa.
n ta xil butun sondan iborat A bitonik massivi berilgan bo‘lsa, berilgan butun son massivda bor yoki yo‘qligini () bosqichda qanday
aniqlash mumkinligini tasvirlab bering.
Machine Translated by Google
Ma'lumotlar tuzilmalari va algoritmlari osonlashtirildi
434
Qidirilmoqda | Qidiruvdagi muammolar
©www.CareerMonk.com
Yechish: Yechish: /2 da elementni tartiblang va qaytaring.
(+
Quyidagilardan biri to'g'ri bo'lsa, pozitsiyani qaytaring:
int BinarySearchFirstOccurrence(int A[], int n, int low, int high, int data) {
Qaytish BinarySearchFirstOccurrence (A, n, o'rta + 1, yuqori, ma'lumotlar);
Vaqt murakkabligi:().
barcha elementlarning medianasini toping (
A[mid] == ma'lumotlar && A[mid-1] < ma'lumotlar
Muammo-31-Muammo-25-muammoni so'rashning boshqa yo'li?
Yechim: Yechimga qarang:
o'rta = past + (yuqori-past) / 2;
Do'stlaringiz bilan baham: |