विचार करें कि हमारे पास एक सरणी है, जो क्रमबद्ध सरणी घुमाई गई है। हमें सरणी को सॉर्ट करने के लिए आवश्यक घुमावों की संख्या का पता लगाना होगा। (हम दाएं से बाएं घुमाने पर विचार करेंगे।)
मान लीजिए कि सरणी इस प्रकार है:{15, 17, 1, 2, 6, 11}, तो हमें सरणी को क्रमबद्ध करने के लिए दो बार घुमाना होगा। अंतिम आदेश {1, 2, 6, 11, 15, 17} होगा। यहाँ आउटपुट 2 है।
तर्क सरल है। यदि हम ध्यान दें, तो हम देख सकते हैं कि रोटेशन की संख्या न्यूनतम तत्व के सूचकांक के मूल्य के समान है। तो अगर हमें न्यूनतम तत्व मिलता है, तो इसका सूचकांक परिणाम होगा।
उदाहरण
#include <iostream> using namespace std; int getMinIndex(int arr[], int n){ int index = 0; for(int i = 1; i<n; i++){ if(arr[i] < arr[index]){ index = i; } } return index; } int countNumberOfRotations(int arr[], int n){ return getMinIndex(arr, n); } int main() { int arr[] = {15, 17, 1, 2, 6, 11}; int n = sizeof(arr)/sizeof(arr[0]); cout << "Number of required rotations: " << countNumberOfRotations(arr, n); }
आउटपुट
Number of required rotations: 2