Google search చేసినప్పుడు, ఫలితాలు ఒక సెకను లోపు కనిపిస్తాయి - అత్యంత relevant నుండి తక్కువ relevant వరకు rank చేయబడి. Netflix సినిమాలు recommend చేసేటప్పుడు, మీరు ఎంత ఇష్టపడతారో ఆధారంగా వేలాది titles sort చేస్తుంది. ప్రతి వేగవంతమైన lookup మరియు ranked list వెనుక ఒక sorting లేదా searching algorithm ఉంటుంది.
Sorted data శక్తివంతమైన data. List క్రమంలో ఉంటే:
Bubble sort పదేపదే list ద్వారా నడుస్తుంది, పక్కపక్కన ఉన్న items ను పోల్చి తప్పు క్రమంలో ఉంటే swap చేస్తుంది. పెద్ద విలువలు చివరికి "bubble" అవుతాయి.
[5, 3, 8, 1, 2]
↕
[3, 5, 8, 1, 2] → 5 మరియు 3 swap
[3, 5, 1, 8, 2] → 8 మరియు 1 swap
[3, 5, 1, 2, 8] → 8 మరియు 2 swap
... swaps అవసరం లేనంత వరకు కొనసాగించండి
Time complexity: O(n²). 1,000,000 items తో? ట్రిలియన్ comparisons. AI workloads కి practical కాదు.
Bubble sort దాదాపు n² comparisons తీసుకుంటే, వెయ్యి items తో పోలిస్తే మిలియన్ items sort చేయడం ఎంత నెమ్మదిగా ఉంటుంది? (1,000,000)² vs (1,000)² నిష్పత్తి ఆలోచించండి. అది మిలియన్ రెట్లు నెమ్మది - కేవలం వెయ్యి రెట్లు ఎక్కువ data కోసం.
Merge sort list ను రెండుగా split చేసి, ప్రతి సగాన్ని sort చేసి, రెండు sorted halves ను merge చేస్తుంది.
[5, 3, 8, 1, 2, 7, 4, 6]
split
[5, 3, 8, 1] [2, 7, 4, 6]
split split
[5, 3] [8, 1] [2, 7] [4, 6]
↓ ↓ ↓ ↓
[3, 5] [1, 8] [2, 7] [4, 6]
merge merge
[1, 3, 5, 8] [2, 4, 6, 7]
merge
[1, 2, 3, 4, 5, 6, 7, 8]
Time complexity: O(n log n) - నాటకీయంగా వేగం. మిలియన్ items కి ట్రిలియన్ బదులు దాదాపు 20 మిలియన్ comparisons.
Python built-in sort Timsort ఉపయోగిస్తుంది - merge sort మరియు insertion sort కలిపిన hybrid algorithm. Tim Peters 2002 లో కనుగొన్నారు, ఇప్పుడు Python, Java మరియు Android లో ఉపయోగిస్తారు. ఇది ఇప్పటికే partially sorted ఉన్న real-world data పై బాగా పనిచేయడానికి ప్రత్యేకంగా రూపొందించబడింది.
Sign in to join the discussion
| Items | Bubble Sort (O(n²)) | Merge Sort (O(n log n)) | |-------|---------------------|-------------------------| | 100 | 10,000 ops | ~700 ops | | 10,000 | 100,000,000 ops | ~130,000 ops | | 1,000,000 | 1,000,000,000,000 ops | ~20,000,000 ops |
తేడా academic కాదు - "సెకనులో పూర్తి" మరియు "వచ్చే వారం పూర్తి" మధ్య తేడా.
AI applications లో పెద్ద datasets కి bubble sort కంటే merge sort ఎందుకు ఇష్టపడతారు?
"Smith" ను phone book లో చూస్తున్నారనుకోండి. Page 1 నుండి ప్రారంభించి ప్రతి పేరు చదవరు. మధ్యలో తెరిచి, ఎక్కడ ఉన్నారో చూసి, సరైన సగానికి jump చేస్తారు. తర్వాత repeat.
అది binary search - ఇది sorted data పైనే పనిచేస్తుంది.
sorted_list = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91]
target = 23
Step 1: Middle = 16 → 23 > 16, కుడి సగం search
Step 2: Middle = 38 → 23 < 38, ఎడమ సగం search
Step 3: Middle = 23 → కనుగొన్నాం!
Time complexity: O(log n). మిలియన్ items sorted list లో binary search ఏ item నైనా గరిష్టంగా 20 steps లో కనుగొంటుంది.
Sorted database లో 1,000,000 records ఉన్నాయి. Binary search worst case లో ఎన్ని comparisons?
Google ప్రతి relevant page కి score ఇచ్చి relevance ప్రకారం sort చేస్తుంది. Top 10 page one లో కనిపిస్తాయి.
Netflix మీ viewing history ఆధారంగా వేలాది titles కి "match score" లెక్కించి, ఉత్తమ matches ముందు చూపించడానికి sort చేస్తుంది.
ఈ classic AI algorithm ఇచ్చిన input కి K అత్యంత సారూప్య items కనుగొంటుంది. Distances లెక్కించి K అతి చిన్నవి కనుగొనడానికి partially sorts చేస్తుంది.
ఎల్లప్పుడూ పూర్తిగా sort చేయాల్సిన అవసరం లేదు. మిలియన్ items నుండి top 10 మాత్రమే కావాలంటే, partial sort లేదా heap O(n log k) సమయంలో కనుగొనగలదు.
Training ముందు, balanced batches సృష్టించడానికి AI practitioners data sort చేస్తారు - ప్రతి batch లో easy మరియు hard examples mix ఉండేలా.
| Scenario | ఉత్తమ ఎంపిక | ఎందుకు | |----------|------------|--------| | Key ద్వారా ఒక item కనుగొనడం | Hash map | O(1) lookup | | Top-10 items కనుగొనడం | Sort | Ordered results కావాలి | | Item ఉందో తనిఖీ | Hash map | O(1) vs O(log n) | | Items క్రమంలో పొందడం | Sort | Hash maps కి order లేదు | | Range queries (A మరియు B మధ్య items) | Sorted array + binary search | Hash maps ranges చేయలేవు |
Music streaming service మీ "Top 50 most played songs" చూపించాలి. మీ మొత్తం listening history sort చేస్తారా, లేదా ఎల్లప్పుడూ top 50 తెలిసిన data structure maintain చేస్తారా?
Google రోజుకు 8.5 బిలియన్ కంటే ఎక్కువ searches process చేస్తుంది. ప్రతి search milliseconds లో వందలాది ఫలితాలను sort మరియు rank చేస్తుంది. Sorting algorithms సామర్థ్యం Google data centres ఎంత electricity వినియోగిస్తాయో నేరుగా ప్రభావితం చేస్తుంది - మెరుగైన algorithms అక్షరాలా megawatts ఆదా చేస్తాయి.
Binary search ఎప్పుడు తగినది కాదు?