அல்கோரிதம்quick sort optimization

Quick sort optimization

TT
Testlaa Team
May 14, 20261 min read

மூன்றில் நடு pivot, சிறிய துணை அணிகளில் insertion, மூன்று-வழி partition, introsort — quicksort ஐ production-தரமாக மாற்றும்.

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

libc qsort — வெவ்வேறு வன்பொருள். Java DualPivotQuicksort — CPU. Pandas பல மில்லியன் வரிசை — நீங்கள் pivot உள்ளகத்தை அறிந்திருந்தால் adversarial/நகல் தரவு புரியும்.

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

மூன்றில் நடு — கட்டமைக்கப்பட்ட தரவில் மோசமான பிரிப்பு குறைவு. n<16 insertion — recursion செலவு. மூன்று-வழி — சமங்களை நடுவில் தனி; மீண்டும் முன்னேறாது. introsort — ஆழம் O(log n) கடந்தால் heapsort — மோசமான சூழல் O(n log n).

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

# Intuition: switch to insertion under threshold
THRESH = 16


def sort_small(a):
    return sorted(a)  # stand-in for insertion on tiny lists


def qsort_hybrid(a):
    return sort_small(a) if len(a) < THRESH else sorted(a)  # toy: replace with real quicksort


print(qsort_hybrid(list(range(10))))

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

  • மூன்று-வழி இல்லாமல் median மட்டும் — இன்னும் மோசம்.
  • insertion வாசல் மிகச் சிறியது.
  • introsort ஆழம் கணக்கு தவறு.

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

  • production கலப்பு.
  • நகல்கள் மூன்று-வழி.
  • runtime மோசமான சூழல் உத்தரவாதம்.

Tags:

SortingPythonமாணவர்கள்