அல்கோரிதம்custom sorting

Custom sort — பிரச்சினை விதிகள்

TT
Testlaa Team
May 14, 20261 min read

பெரும்பாலும் “ஏறுவரிசை” மட்டும் கேட்பதில்லை: இரண்டாம் நெடுவரிசையை இறங்குவரிசை, சமநிலையில் முதல் நெடுவரிசை ஏறுவரிசை போன்ற விதிகள். இதுவே custom sorting — வணிக விதிகளை key function அல்லது tuple வரிசையாக மாற்றுவது.

உண்மை உலகில் இது ஏன் முக்கியம்?

ரைடு-ஹேலிங் செயலி வருவதற்கான நேரம், மதிப்பீடு, தூரம் போன்ற tuple வரிசை கொண்டு ஓட்டுநர்களைக் காட்டலாம். விளையாட்டு அட்டவணை புள்ளிகள், கோல் வித்தியாசம், அடிக்கப்பட்ட கோல்கள் — இது வரிசைப்படுத்தும் விதி. பிழை கண்காணிப்பு கடுமை, வயது, ID போன்ற வரிசை. Python sorted(..., key=) மற்றும் SQL ORDER BY இதே கருத்து.

மையக் கருத்து (மாணவர்களுக்கான விளக்கம்)

ஒவ்வொரு பொருளையும் tuple key ஆக மாற்றவும்; Python இயல்பு lexicographic வரிசை உங்கள் விதியுடன் பொருந்துமா எனச் சோதிக்கவும். இறங்குவரிசைக்கு எண்ணாக இருந்தால் எதிர்குறி, இல்லையெனில் (-x, secondary). விலையுயர்ந்த key என்றால் ஒருமுறை கணக்கிட்டு decorate-sort-undecorate. Stable sort (sorted, list.sort) சம முதன்மை விசைகளில் உள்ளீட்டு வரிசையைக் காக்கும்.

Pythonில் முயற்சி செய்வோம்

rows = [
    ("ana", 92, 1),
    ("bob", 92, 2),
    ("cara", 88, 3),
]
# Sort by score descending, then name ascending
print(sorted(rows, key=lambda r: (-r[1], r[0])))

அடிக்கடி நேரும் தவறுகள்

  • tuple திட்டம் இல்லாமல் ஏறு/இறங்கு கலப்பு — சோதனைகள் தவறாகும்.
  • float-க்கு எதிர்குறி — NaN சிக்கல்கள்.
  • பகிரப்பட்ட பட்டியலை இடையில் மாற்றுதல் — பக்க விளைவுகள்.

முக்கியச் சுருக்கக் குறிப்புகள்

  • விதியை tuple keys அல்லது key= மூலம் குறியீடாக்கவும்.
  • பல நிலை tie-க்கு stable sort பயன்படுத்தவும்.
  • பெரிய அட்டவணைக்கு operator.itemgetter படிப்படி வேகம்.

Tags:

SortingPythonமாணவர்கள்