Array Traversal Patterns (தமிழில் விளக்கம்)
Arrays என்பது மதிப்புகளை சேமிப்பதற்காக மட்டும் அல்ல.
Arrays-இன் உண்மையான சக்தி, அதில் உள்ள அனைத்து மதிப்புகளையும் செயலாக்கும் போது வெளிப்படும். அதற்காக traversal மிகவும் முக்கியமானது.
Traversal என்றால் என்ன?
Traversal என்பது ஒரு array-இல் உள்ள ஒவ்வொரு மதிப்பையும் ஒன்றன் பின் ஒன்றாக பார்க்கும் செயல் ஆகும்.
இதை ஒரு எளிய உதாரணமாக நினைத்துப் பாருங்கள்:
- ஒரு வகுப்பில் வருகைப் பதிவு எடுப்பது போல
- ஒவ்வொரு மாணவரையும் தனித்தனியாக சரிபார்ப்பது போல
நீங்கள் யாரையும் தவிர்க்க முடியாது. அனைத்து மதிப்புகளையும் கட்டாயமாக பார்க்க வேண்டும்.
Traversal ஏன் முக்கியம்?
பெரும்பாலான array கேள்விகளில், நீங்கள் கீழ்கண்ட செயல்களை செய்ய வேண்டும்:
- அனைத்து மதிப்புகளையும் கூட்டுவது (sum)
- மிகச் சிறிய மதிப்பை கண்டுபிடிப்பது (minimum)
- மிகப் பெரிய மதிப்பை கண்டுபிடிப்பது (maximum)
- ஒரு நிபந்தனைக்கு ஏற்ப எண்ணிக்கை காண்பது (count)
இந்த செயல்களை செய்ய ஒவ்வொரு மதிப்பையும் பார்க்க வேண்டும். அதனால் traversal மிகவும் அவசியமானது.
அடிப்படை Traversal (Index பயன்படுத்தி)
ஒரு உதாரணம் பார்க்கலாம்:
arr = [5, 10, 15]
for i in range(len(arr)):
print(arr[i])
படிப்படியாக விளக்கம்
i = 0->arr[0]->5i = 1->arr[1]->10i = 2->arr[2]->15
Output:
5
10
15
மேலும் எளிய முறை (Recommended)
Python-இல் இன்னும் எளிய முறை உள்ளது:
for num in arr:
print(num)
இங்கு num என்பது array-இல் உள்ள ஒவ்வொரு மதிப்பையும் நேரடியாக எடுத்துக்கொள்கிறது.
இந்த முறை ஏன் சிறந்தது?
- படிக்க எளிதாக இருக்கும்
- தவறுகள் ஏற்படும் வாய்ப்பு குறையும்
- code சுத்தமாக இருக்கும்
Traversal-இன் Time Complexity
Traversal எப்போதும் O(n) ஆகும்.
ஏனெனில் ஒவ்வொரு மதிப்பும் ஒருமுறை பார்க்கப்படுகிறது.
Pattern 1: Array-இன் கூட்டுத்தொகை (Sum)
உதாரணம்:
marks = [80, 75, 90, 85]
படி 1: ஒரு மாறி உருவாக்கவும்
total = 0
இந்த மாறி மொத்த மதிப்பை சேமிக்க பயன்படும்.
படி 2: Traverse செய்து update செய்யவும்
for m in marks:
total += m
செயல்முறை:
தொடக்கம் -> total = 0
0 + 80 = 80
80 + 75 = 155
155 + 90 = 245
245 + 85 = 330
படி 3: முடிவை அச்சிடவும்
print(total)
Output:
330
Time Complexity: O(n)
Pattern 2: Minimum மற்றும் Maximum கண்டறிதல்
உதாரணம்:
arr = [300, 150, 450, 200]
படி 1: தொடக்க மதிப்பு அமைக்கவும்
min_val = arr[0]
max_val = arr[0]
முதலாவது மதிப்பை ஆரம்பமாக எடுத்துக்கொள்கிறோம்.
படி 2: Traverse செய்து ஒப்பிடவும்
for x in arr:
if x < min_val:
min_val = x
if x > max_val:
max_val = x
சிந்தனை:
தொடக்கம்: min = 300, max = 300
150 -> min மாற்றம்
450 -> max மாற்றம்
200 -> மாற்றம் இல்லை
இறுதி: min = 150, max = 450
படி 3: முடிவை அச்சிடவும்
print(min_val, max_val)
Time Complexity: O(n)
முக்கிய கருத்து: One-Pass Thinking
கீழ்க்கண்ட பிரச்சினைகளை பார்க்கும் போது:
- sum
- min / max
- count
இந்த முறையை பின்பற்றவும்:
- ஒரு மாறி உருவாக்கவும்
- array-ஐ ஒருமுறை traverse செய்யவும்
- ஒவ்வொரு மதிப்பிற்கும் update செய்யவும்
வாழ்வியல் உதாரணம்
உங்கள் பணப்பையில் உள்ள பணத்தை எண்ணுவது போல நினைத்துப் பாருங்கள்:
- ஒவ்வொரு நோட்டையும் ஒன்றன் பின் ஒன்றாக எடுப்பீர்கள்
- மொத்தத்தில் சேர்ப்பீர்கள்
- ஒரே முறையில் முடித்துவிடுவீர்கள்
அதே விதமாக traversal செயல்படுகிறது.
இறுதி குறிப்புகள்
- Traversal என்பது ஒவ்வொரு மதிப்பையும் ஒன்றன் பின் ஒன்றாக பார்ப்பது ஆகும்.
- பெரும்பாலான array செயல்பாடுகள் traversal-ஐ சார்ந்தவை.
- Python-இல்
for num in arrபயன்படுத்துவது சிறந்தது. - Sum, Min, Max எல்லாம் ஒரே one-pass முறையை பின்பற்றுகின்றன.
- Traversal-இன் time complexity பொதுவாக O(n) ஆகும்.
