समस्या
दो छोरों का उपयोग करके किसी सरणी में गैर-दोहराए जाने वाले तत्व का पता लगाएं। एक वर्तमान तत्व के लिए है और दूसरा यह जांचना है कि कोई तत्व पहले से ही किसी सरणी में मौजूद है या नहीं।
समाधान
नीचे दिए गए एक उदाहरण पर विचार करें -
15, 15, 16, 15, 13, 15
यहां, सरणी में गैर-दोहराए गए तत्व 16 और 13 हैं।
एल्गोरिदम
किसी सरणी में अद्वितीय या गैर-दोहराए गए तत्वों को खोजने के लिए नीचे दिए गए एल्गोरिदम को देखें।
चरण 1 - एक सरणी घोषित करें और रन टाइम पर सरणी तत्वों को इनपुट करें।
चरण 2 - सरणी को पार करना शुरू करें और जांचें कि क्या वर्तमान तत्व पहले से ही किसी सरणी में मौजूद है या नहीं।
चरण 3 - यदि यह पहले से ही किसी सरणी में मौजूद है, तो किसी सरणी में अगले तत्व पर जाएँ और जारी रखें।
चरण 4 - यदि नहीं, तो तत्व को गैर-दोहराए जाने वाले तत्व के रूप में आउटपुट करें।
उदाहरण
एक सरणी में अद्वितीय या गैर-दोहराए गए तत्वों को खोजने के लिए सी प्रोग्राम निम्नलिखित है -
#include <stdio.h> #include <stdlib.h> int uniqueEle(int array[], int n){ int i,j; int count = 1; for(i = 0; i < n; i++){ for(j = 0; j < n; j++){ if(array[i] == array[j] && i != j) break; } if(j == n ){ printf("\nunique elements in an array is [%d] : %d \n",count,array[i]); ++count; } } return -1; } int main(){ int n,i; printf("\nEnter no: of elements : "); scanf("%d",&n); int array[n]; printf("\nenter the array elements : "); for(i = 0; i < n; i++){ scanf("%d",&array[i]); } uniqueEle(array, n); return 0; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -
Run 1: Enter no: of elements: 5 enter the array elements : 11 11 15 16 13 unique elements in an array is [1] : 15 unique elements in an array is [2] : 16 unique elements in an array is [3] : 13 Run 2: Enter no: of elements: 4 enter the array elements : 11 12 11 11 unique elements in an array is [1] : 12