Duplicate Elements
ஒரு array-ல் ஒரே element ஒன்றுக்கும் மேற்பட்ட எண்ணிக்கையில் இருந்தால் அது duplicate element என்று கருதபடுகிறது. eg: int a[] = {2, 8, 3, 6, 3, 5, 7, 2, 6, 9, 2, 8}; இதில் 2,8,3,6 ஆகிய நான்கு element-களும் ஒன்றுக்கும் மேற்பட்ட எண்ணிக்கையில் repeat-ஆகியுள்ளது. ஆகையால் இவை duplicate elements என்று கருதபடுகிறது.
How to remove the duplicates
இதில் உள்ள repeated elements-ஐ எவ்வாறு remove செய்வது என்பதை விளக்குவதே இந்த program.
a என்ற array-ல் உள்ள element-களை repeat-ஆகின்றதா என்பதை ஒவொன்றாக check செய்து b என்ற array-ல் store செய்து கொள்கின்றோம். இந்த array b-ன் size ஆனது a-ன் size என்னவோ அதே size-ல் இருக்க வேண்டும். குறைவாக இருக்க கூடாது. ஏனெனில் a-என்ற array-ல் repeated element இல்லையெனில், a-ல் உள்ள அனைத்து element-களும் b-ல் store செய்யவேண்டும். ஆகையால் தான் size சமமாக இருக்க வேண்டும்.
count=0 அதாவது b என்ற array-ல் எதனை element-உள்ளது என்பதை இந்த count variable store செய்துகொண்ட இருக்கும். துவக்கதில் b-ல் எந்த element-ம் இல்லை என்பதால் count=0 என்று எடுத்துகொள்கிறோம்.
இப்பொழுது இரண்டு loop தேவைபடுகிறது. for(i=0;i<a.length;i++) இந்த loop, a-ல் உள்ள ஒவ்வொரு element-ஐயும் எடுப்பதற்கும். for(j=0;j<count;j++) இந்த loop, b-ல் உள்ள ஒவ்வொரு element-ஐயும் எடுப்பதற்கும் பயன்படுகிறது. இரண்டாவது loop-ன் உள்ளே, if(a[i]==b[j])-ல் அதாவது a-ல் எடுக்கப்பட்ட element a[i]-ம், b-ல் எடுக்கப்பட்ட element b[j]-ம் சமமாக உள்ளதா என்று சரிபர்க்க வேண்டும். அவ்வாறு சமமாக இருந்தால் இதுவே repeated element. ஆகையால் இந்த loop-ஐ break கொடுத்து அந்த element-ஐ skip செய்து விடவேண்டும்.
a-ல் ஒரு element-ஐ எடுத்து b-ல் உள்ள அனைத்து elements உடன் ஒப்பிட்டு பார்த்து அது பொருந்தவில்லை எனில் அது repeated(duplicate) element அல்ல. இபொழுது for(j=0;j<count;j++) loop முடியும் போது j-ன் value, count-ன் value-க்கு சமமாக மாறி இருக்கும். இந்த நிலையில் தான் if(j==count){ b[count]=a[i];} அதாவது, a-ல் உள்ள element-ஐ b-என்ற array-ல் சேர்க்கவேண்டும். இபொழுது count++ செய்யவேண்டும். ஏனெனில் b-ல் ஒரு element சேர்ந்துவிட்டது என்பதை குறிக்கும்.
இவை அனைத்தும் for(i=0;i<a.length;i++) இந்த loop-ற்கு உள்ளே தான் இருக்கவேண்டும். ஏனெனில் a-ல் உள்ள ஒவ்வொரு element-ஆக எடுத்து தான் மேற்கண்ட அனைத்தையும் செய்கின்றோம். இதேபோல் இந்த loop a-ல் உள்ள அனைத்து element-ஐயும் சுழற்சி முறையில் செய்துவிட்டு நின்றுவிடும்.
இப்பொழுது b-ல் unique elements. அதாவது repeat ஆகாத elements அனைத்தும் சேர்க்கபட்டு இருக்கும் இதை for loop-ஐ கொண்டு print செய்து கொள்ளவேண்டும்.
#include<iostream.h>
#include<conio.h>
int main(){
int a[] = {2, 8, 3, 6, 3, 5, 7, 2, 6, 9, 2, 8};
int length=sizeof(a)/sizeof(int);
int b[length];
int count = 0, i, j;
for (i = 0; i < length; i++) {
for (j = 0; j < count; j++) {
if (a[i] == b[j]) {
break;
}
}
if (j == count) {
b[count] = a[i];
count++;
}
}
cout<<"\nArray after removing duplicate elements:";
for (i = 0; i < count; i++) {
cout<<b[i]<<" ";
}
return 0;
}
Array after removing duplicate elements:
2 8 3 6 5 7 9
Pgcomments
இது பற்றிய தங்களின் கருத்துகளை இங்கே பதிவிடுங்கள் . இது பயனுள்ளதாக விரும்பினால் மற்றவர்களுக்கும் இதை share செய்யுங்கள்.
Comments