हमारे पास n तत्वों के साथ एक सूची L है। हमें यह जांचना है कि सूची जोड़ी के अनुसार क्रमबद्ध है या नहीं। मान लीजिए कि सूची {8, 10, 18, 20, 5, 15} जैसी है। यह जोड़ी के अनुसार क्रमबद्ध है (8, 10), (18, 20), (5, 15) क्रमबद्ध हैं। यदि सूची में तत्वों की विषम संख्या है, तो अंतिम को अनदेखा कर दिया जाएगा।
दृष्टिकोण बहुत सरल है, संख्या को बाएँ से दाएँ पार करें। लगातार दो तत्वों को लिया जाता है, और जांचें कि वे क्रमबद्ध हैं या नहीं, यदि कोई एक जोड़ी क्रमबद्ध नहीं है, तो झूठी वापसी करें, यदि कोई जोड़ी नहीं मिलती है, जो कि अवर्गीकृत है, तो सही है।
उदाहरण
#include <iostream> #include <cmath> using namespace std; class Node{ public: int data; Node *next; }; void append(struct Node** start, int key) { Node* new_node = new Node; new_node->data = key; new_node->next = (*start); (*start) = new_node; } bool isPairwiseSorted(Node *start) { bool flag = true; struct Node* temp = start; while (temp != NULL && temp->next != NULL) { if (temp->data < temp->next->data) { flag = false; break; } temp = temp->next->next; } return flag; } int main() { Node *start = NULL; int arr[] = {8, 10, 18, 20, 5, 15}; int n = sizeof(arr)/sizeof(arr[0]); for(int i = 0; i<n; i++){ append(&start, arr[i]); } if(isPairwiseSorted(start)){ cout << "This is pairwise sorted"; } else { cout << "This is not pairwise sorted"; } }
आउटपुट
This is pairwise sorted