کی میز کے مندرجات[چھپائیں][دکھائیں]
کمپیوٹر سائنس الگورتھم اور ڈیٹا ڈھانچے کی پیچیدگیوں کو سمجھنے کے بارے میں ہے۔
آپ کے پاس آئٹمز کی ایک فہرست ہے جنہیں ترتیب دینے کی ضرورت ہے، لیکن آپ کے پاس زیادہ پیچیدہ ترتیب دینے والے الگورتھم کو استعمال کرنے کے لیے وقت یا وسائل نہیں ہیں۔
اندراج چھانٹنا آسان ترین الگورتھم میں سے ایک ہے، لیکن یہ بڑی فہرستوں کے لیے سست ہو سکتا ہے۔
آسان نفاذ اور سمجھ بوجھ نے اس طریقہ کو پروگرامرز کے درمیان پسندیدہ بنا دیا ہے۔ یہ چھوٹی فہرستوں کے لیے بہترین ہے یا جب آپ کو فوری حل کی ضرورت ہو۔
اس بلاگ پوسٹ میں، ہم اندراج کی چھانٹی کے وقت کی پیچیدگی کو دیکھیں گے۔ یہ الگورتھم صفوں کو ترتیب دینے کے لیے استعمال کیا جاتا ہے، اور اس کا رن ٹائم O(n2)۔ اس کا مطلب ہے کہ وقت کی پیچیدگی صف کے سائز کے ساتھ بڑھ جاتی ہے۔
تاہم، یہ الگورتھم اکثر چھانٹنے والے دوسرے الگورتھم، جیسے Quicksort کے مقابلے میں تیز تر ہو سکتا ہے۔
آئیے اس پر گہری نظر ڈالتے ہیں کہ اندراج کی چھانٹی کیسے کام کرتی ہے!
اندراج ترتیب الگورتھم کیا ہے؟
ایک وقت میں ایک عنصر، اندراج کی ترتیب ترتیب دینے والی صف پیدا کرتی ہے، جسے اکثر فہرست کہا جاتا ہے۔
مثال کے طور پر، کمپائلرز جیسے پیچیدہ کمپیوٹر پروگراموں میں چھانٹی کا اطلاق ہوتا ہے، جہاں پروگرام کی تشریح کے لیے ٹوکن کی ترتیب اہم ہوتی ہے۔
اندراج کی ترتیب کیسے کام کرتی ہے؟
جب ہم کسی صف کو ترتیب دینے کے لیے انسرشن کی ترتیب کا استعمال کرتے ہیں، تو الگورتھم فہرست میں سب سے چھوٹی چیز کو تلاش کرکے اور اسے صحیح پوزیشن میں داخل کرنے سے شروع ہوتا ہے۔
اس کے بعد یہ اگلی سب سے چھوٹی چیز تلاش کرتا ہے اور اسے صحیح پوزیشن میں داخل کرتا ہے، وغیرہ۔
الگورتھم فہرست کو لوپ کرکے، ہر آئٹم کا اس سے پہلے آنے والے آئٹم سے موازنہ کرکے کام کرتا ہے۔
اگر آئٹمز غلط ترتیب میں ہیں تو الگورتھم انہیں تبدیل کر دیتا ہے۔ پھر یہ چیک کرتا ہے کہ آیا فہرست کو ترتیب دیا گیا ہے، اور اگر یہ ہے تو، الگورتھم ختم ہو جاتا ہے۔
عملی طور پر، اندراج کی ترتیب کو اکثر کوڈ کی چند سطروں کا استعمال کرتے ہوئے لاگو کیا جاتا ہے، جو اسے چھوٹی صفوں کو چھانٹنے کے لیے ایک مقبول انتخاب بناتا ہے۔ تاہم، اس الگورتھم کا استعمال کرتے وقت وقت کی پیچیدگی پر غور کیا جانا چاہیے۔
: مثال کے طور پر
یہاں ایک مثال ہے کہ اندراج کی چھانٹی کیسے کام کرتی ہے۔ ہم مندرجہ ذیل صف کا استعمال کریں گے:
1، 2، 3، 4، 5، 6
الگورتھم فہرست میں سب سے چھوٹی چیز تلاش کرنے سے شروع ہوتا ہے، جو کہ 1 ہے۔ پھر اسے صحیح پوزیشن یعنی پہلی پوزیشن میں داخل کرتا ہے۔ اس کے بعد یہ اگلی سب سے چھوٹی چیز تلاش کرتا ہے، جو کہ 2 ہے۔ یہ اسے صحیح پوزیشن میں داخل کرتا ہے، جو کہ دوسری پوزیشن ہے۔
اس کے بعد یہ اگلی سب سے چھوٹی چیز تلاش کرتا ہے، جو کہ 3 ہے۔ یہ اسے صحیح پوزیشن میں داخل کرتا ہے، جو کہ تیسری پوزیشن ہے۔
اس کے بعد یہ اگلی سب سے چھوٹی چیز تلاش کرتا ہے، جو کہ 4 ہے۔ یہ اسے صحیح پوزیشن میں داخل کرتا ہے، جو چوتھی پوزیشن ہے، وغیرہ۔ فہرست اب ترتیب دی گئی ہے!
ہم مثال سے دیکھ سکتے ہیں کہ الگورتھم فہرست کو ترتیب دینے کے لیے چھ موازنہ اور تبادلہ کرتا ہے۔ اس کی وجہ یہ ہے کہ یہ ن لیتا ہے۔2 n اشیاء کی فہرست کو ترتیب دینے کے لیے موازنہ اور تبادلہ۔ اس صورت میں، n=6۔
اندراج کی ترتیب کے وقت کی پیچیدگی کو کیسے بہتر بنایا جائے؟
جب کہ اندراج کی ترتیب کا رن ٹائم O(n2)، اسے ایک بہتر ترتیب دینے والے الگورتھم، جیسے Quicksort کا استعمال کرکے بہتر بنایا جا سکتا ہے۔
Quicksort میں O(n log n) رن ٹائم ہے، جو O(n) سے زیادہ تیز ہے۔2).
تاہم، بعض صورتوں میں، اندراج کی چھانٹی Quicksort سے تیز تر ہو سکتی ہے۔
مثال کے طور پر، اگر فہرست پہلے سے ترتیب میں ہے، تو اندراج کی چھانٹ میں Quicksort سے کم وقت لگے گا۔
عملی طور پر، اندراج کی ترتیب کو اکثر کوڈ کی چند سطروں کا استعمال کرتے ہوئے لاگو کیا جاتا ہے، جو اسے چھوٹی صفوں کو چھانٹنے کے لیے ایک مقبول انتخاب بناتا ہے۔
تاہم، اس الگورتھم کا استعمال کرتے وقت وقت کی پیچیدگی پر غور کیا جانا چاہیے۔
وقت کی پیچیدگیاں
بدترین کیس کی پیچیدگی O(n2):
وقت کی پیچیدگی صف کے سائز کے ساتھ بڑھ جاتی ہے۔ یہ ن لیتا ہے2 n اشیاء کی فہرست کو ترتیب دینے کے لیے موازنہ اور تبادلہ۔
مثال کے طور پر، اگر ہمارے پاس سائز 1000 کی ایک صف ہے، تو الگورتھم صف کو ترتیب دینے کے لیے 1,000,000 موازنہ اور تبادلہ کرے گا۔
بہترین کیس کی پیچیدگی O(n):
وقت کی پیچیدگی ان پٹ سرنی کے سائز کے برابر ہے۔ میں
t n اشیاء کی فہرست کو ترتیب دینے کے لیے n موازنہ اور تبادلہ لیتا ہے۔ مثال کے طور پر، سائز 5 کی ایک صف پر غور کریں۔ الگورتھم صف کو ترتیب دینے کے لیے پانچ موازنہ اور تبادلہ کرے گا۔
اوسط کیس کی پیچیدگی O(n2):
وقت کی پیچیدگی اس معاملے میں بدترین اور بہترین کیس کی پیچیدگیوں کے درمیان ہے۔
یہ ن لیتا ہے2 n اشیاء کی فہرست کو ترتیب دینے کے لیے موازنہ اور تبادلہ۔
اس طرح، اندراج چھانٹنا ایک مستحکم ترتیب دینے والا الگورتھم ہے۔
اندراج کی ترتیب مستحکم کیوں ہے؟
اندراج کی ترتیب مستحکم ہے کیونکہ یہ ان پٹ سرنی میں مساوی عناصر کی ترتیب کو محفوظ رکھتی ہے۔
یہ بہت سی ایپلی کیشنز کے لیے اہم ہے، جیسے ڈیٹا کی بازیافت یا مالیاتی تجزیہ۔ مثال کے طور پر، اگر ہمارے پاس نمبروں کی دو فہرستیں ہیں اور ہم ان کا موازنہ کرنا چاہتے ہیں، تو ہمیں اس بات کو یقینی بنانا ہوگا کہ عناصر کی ترتیب کو محفوظ رکھا جائے۔
اگر فہرستوں کو ترتیب نہیں دیا گیا تو ہم ان کا درست موازنہ نہیں کریں گے۔
جواب دیجئے