मैंने चक्रीय सॉर्ट किए गए सरणी में न्यूनतम तत्व को खोजने के लिए निम्न कोड का प्रयास किया है। लेकिन यह विफल रहता है जब कम = 1 और उच्च = 2 क्योंकि मध्य हमेशा 1 होता है और एक [मध्य] = एक [1] हमेशा [उच्च] से अधिक होता है।चक्रीय सॉर्टेड सरणी में न्यूनतम तत्व ढूंढना
मैं समाधान खोजने के लिए यहां बाइनरी खोज का उपयोग करने की कोशिश कर रहा हूं।
//finding the minim element in the cyclic sorted array
int arrC[]={10,13,1,3,4,5,8};
int low=0,high =6;
int mid=0,reset =1;
while (low < high)
{
mid = (low+ high)/2;
if (arrC[mid]>arrC[high])
{
low = mid;
}
else if (arrC[mid] < arrC[high])
{
high = mid;
}
}
printf("minimum element is %d",arrC[mid+1]);
क्या आपका मतलब घुमावदार सरणी है? – aaronman
हां @ aaronman.यह एक घूर्णन क्रमबद्ध सरणी है। – krrishna
आप प्रिंट 'ARRC [मध्य + 1]' लेकिन अपने न्यूनतम मध्य 0 ... अपने कोड सरलतम मामले में जहां पहला तत्व सहित जब सरणी एक भी तत्व है कम से कम, है के लिए असफल हो जायेगी है। एक विवरण के बिना –