بصری اور بدیہی احساس 7 عام استعمال شدہ ترتیب دینے والے الگورتھم (عام استعمال شدہ تحریری حکمت عملی)

مصنف:چھوٹا سا خواب, تخلیق: 2016-12-06 10:23:16, تازہ کاری:

بصری اور بدیہی طور پر محسوس کرنے کے لئے 7 عام طور پر استعمال ہونے والے ترتیب دینے والے الگورتھم

جب حکمت عملی لکھنے کی بات آتی ہے تو پروگرامنگ کوڈ میں ناگزیر طور پر ایسی صورتحال پیدا ہوتی ہے جس میں ڈیٹا کو ترتیب دینے کی ضرورت ہوتی ہے ، تو ہم کس طرح کم سے کم سسٹم اخراجات (وقت ، سسٹم کے وسائل) کے ساتھ سائنسی پروگرام ڈیزائن کرسکتے ہیں؟

  • 1. تیز ترتیب

    اس کا تعارف: فاسٹ ترتیب ٹونی ہال کی طرف سے تیار کردہ ایک ترتیب دینے والا الگورتھم ہے۔ اوسط حالت میں ، ترتیب n اشیاء کو O ((n log n) بار موازنہ کی ضرورت ہوتی ہے۔ بدترین حالت میں ، O ((n2) بار موازنہ کی ضرورت ہوتی ہے ، لیکن یہ صورتحال غیر معمولی ہے۔ در حقیقت ، فاسٹ ترتیب عام طور پر دوسرے O ((n log n) الگورتھم سے نمایاں طور پر تیز ہوتی ہے ، کیونکہ اس کے اندرونی لوپ (inner loop) کو زیادہ تر فن تعمیرات میں بہت موثر انداز میں لاگو کیا جاسکتا ہے ، اور زیادہ تر حقیقی دنیا کے اعداد و شمار میں ، ڈیزائن کردہ انتخاب کا فیصلہ کیا جاسکتا ہے ، جس سے مطلوبہ وقت کی کم امکان ہوتی ہے۔ اقدامات: اعداد و شمار کی کالموں میں سے ایک عنصر کو منتخب کریں، جسے پیویٹ کہا جاتا ہے. دوبارہ ترتیب دینے کے بعد ، تمام عناصر جو بیعانہ کی قیمت سے کم ہیں ان کو بیعانہ کے سامنے رکھا جاتا ہے ، اور تمام عناصر جو بیعانہ کی قیمت سے زیادہ ہیں ان کو بیعانہ کے پیچھے رکھا جاتا ہے (ایک ہی تعداد دونوں طرف جاسکتی ہے) ؛ اس تقسیم سے باہر نکلنے کے بعد ، یہ بیعانہ صف کے وسط میں ہے۔ یہ تقسیم کا آپریشن کہا جاتا ہے۔ ریکوریو (recursive) ایک ذیلی صف کو ترتیب دیتا ہے جس میں کم سے کم بیعانہ عنصر اور زیادہ سے زیادہ بیعانہ عنصر موجود ہیں۔ صف بندی کا اثر:img

  • 2. درجہ بندی اور ترتیب

    اس کا تعارف: انضمام کی ترتیب (Merge sort) ایک موثر ترتیب دینے والا الگورتھم ہے جو انضمام کے آپریشن پر مبنی ہے۔ یہ الگورتھم تقسیم اور فتح کا ایک بہت ہی عام استعمال ہے۔ اقدامات: درخواست کی جگہ، جس کا سائز دو ترتیب شدہ سیریز کے مجموعے کے برابر ہے، جس کی جگہ کو ضم شدہ سیریز کو ذخیرہ کرنے کے لئے استعمال کیا جاتا ہے دو پوائنٹرز کو ترتیب دیں، جن کی ابتدائی پوزیشنیں دو ترتیب شدہ سیریز کی ابتدائی پوزیشنیں ہیں دو اشاروں کی طرف اشارہ کرنے والے عناصر کا موازنہ کریں ، نسبتا small چھوٹے عناصر کو منتخب کریں اور انضمام کی جگہ میں ڈالیں ، اور اشارے کو اگلے مقام پر منتقل کریں مرحلہ 3 کو دہرائیں جب تک کہ کوئی اشارہ سیریز کے آخر تک نہ پہنچ جائے کسی دوسرے سیریز کے باقی تمام عناصر کو براہ راست ضم شدہ سیریز کے آخر میں کاپی کریں صف بندی کا اثر:img

  • 3. ڈھیر لگانا

    اس کا تعارف: ڈھیر لگانا (انگریزی: Heapsort) ایک ایسا ترتیب دینے والا الگورتھم ہے جو اس طرح کے ڈیٹا ڈھانچے کا استعمال کرتے ہوئے ڈیزائن کیا گیا ہے۔ ڈھیر ایک ایسا ڈھانچہ ہے جو تقریبا مکمل طور پر بائنری درخت ہے اور اس کے ساتھ ہی ڈھیر کی نوعیت کو پورا کرتا ہے: یعنی اس کے نچلے نوڈس کی کلیدی قدر یا انڈیکس ہمیشہ اس کے والدین نوڈس سے کم یا زیادہ ہوتا ہے۔ اقدامات: (اس سے کہیں زیادہ پیچیدہ ، خود آن لائن چیک کریں) صف بندی کا اثر:img

  • 4. ترتیب کا انتخاب کریں

    اس کا تعارف: انتخاب ترتیب ایک سادہ اور بدیہی ترتیب دینے والا الگورتھم ہے۔ یہ اس طرح کام کرتا ہے۔ سب سے پہلے غیر ترتیب شدہ ترتیب میں سب سے چھوٹا عنصر تلاش کریں ، اسے ترتیب کی ترتیب کے آغاز کی جگہ پر محفوظ کریں ، پھر ، باقی غیر ترتیب شدہ عناصر میں سے سب سے چھوٹا عنصر تلاش کریں ، پھر اسے ترتیب کی ترتیب کے اختتام تک رکھیں۔ اور اسی طرح ، جب تک کہ تمام عناصر کو ترتیب نہ دیا جائے۔ صف بندی کا اثر:img

  • 5۔ بلبل ترتیب دیں

    اس کا تعارف: بلبلا ترتیب (Bubble Sort) ایک سادہ ترتیب دینے والا الگورتھم ہے۔ یہ بار بار ترتیب دینے کے لئے صفوں کا دورہ کرتا ہے ، ایک بار دو عناصر کا موازنہ کرتا ہے ، اور اگر ان کا ترتیب غلط ہے تو ، انہیں تبدیل کرتا ہے۔ صفوں کا دورہ کرنے کا کام بار بار ہوتا ہے جب تک کہ تبادلہ کی ضرورت نہیں ہوتی ، یعنی صف مکمل ہوجائے۔ اس الگورتھم کا نام اس وجہ سے ہے کہ آہستہ آہستہ عنصر صف کے اوپری حصے میں آتے ہیں ، اس کے بجائے آہستہ آہستہ بہاؤ۔ اقدامات: ہمسایہ عناصر کا موازنہ کریں۔ اگر پہلا دوسرا سے بڑا ہے تو ، ان میں سے دو کو تبدیل کریں۔ ہر ہمسایہ عنصر کے لئے اسی طرح کا کام کریں، شروع میں پہلی جوڑی سے آخر میں آخری جوڑی تک۔ اس مقام پر، آخری عنصر سب سے بڑی تعداد ہونا چاہئے۔ تمام عناصر کے لئے اوپر کے اقدامات کو دہرائیں ، سوائے آخری کے۔ مندرجہ بالا اقدامات کو ہر بار کم سے کم عناصر کے ساتھ دہرائیں ، جب تک کہ اعداد کا کوئی بھی جوڑا موازنہ کرنے کی ضرورت نہ ہو۔ صف بندی کا اثر:img

  • 6. ترتیب داخل کریں

    اس کا تعارف: Insertion Sort الگورتھم کی وضاحت ایک سادہ اور بدیہی ترتیب دینے والا الگورتھم ہے۔ اس کا کام یہ ہے کہ ترتیب والے سلسلے کی تعمیر کرکے ، غیر ترتیب شدہ اعداد و شمار کے لئے ، ترتیب والے سلسلے میں پیچھے کی طرف اسکین کریں ، اس کے مطابق جگہ تلاش کریں اور داخل کریں۔ Insertion Sort کے نفاذ میں ، عام طور پر in-place ترتیب کا استعمال کیا جاتا ہے (یعنی صرف O ()) تک اضافی جگہ کی ترتیب کی ضرورت ہوتی ہے) ، کیونکہ بعد میں آگے کی سکریننگ کے دوران ، ترتیب شدہ عنصر کو بار بار پیچھے کی طرف منتقل کرنے کی ضرورت ہوتی ہے ، تاکہ تازہ ترین عنصر کے لئے داخل کرنے کی جگہ فراہم کی جاسکے۔ اقدامات: پہلے عنصر سے شروع کرتے ہوئے، اس عنصر کو پہلے ہی ترتیب دیا جا سکتا ہے. اگلا عنصر نکالنے کے لئے، اور بعد میں ترتیب دیا گیا عنصر سیریز میں آگے سکین کریں اگر یہ عنصر ((ترتیب دی گئی ہے) نئے عنصر سے بڑا ہے تو ، اس عنصر کو اگلے مقام پر منتقل کریں مرحلہ 3 کو دہرائیں جب تک کہ ترتیب شدہ عنصر کو نئے عنصر سے کم یا اس کے برابر مقام نہ مل جائے نئے عناصر کو اس مقام میں ڈالنا مرحلہ 2 دہرائیں صف بندی کا اثر: (فی الحال)

  • 7. ہل کی ترتیب

    اس کا تعارف: ہل ترتیب ، جسے کمی کے اضافے کی ترتیب کا الگورتھم بھی کہا جاتا ہے ، ایک تیز رفتار اور مستحکم بہتر ورژن ہے جس میں ترتیب کو داخل کیا جاتا ہے۔ ہل ترتیب ان دو خصوصیات پر مبنی ہے جن کی وجہ سے اصلاح کی تجویز کی گئی ہے: 1، داخلہ ترتیب اعلی کارکردگی کا حامل ہے ، یعنی لکیری ترتیب کی کارکردگی تک پہنچ سکتی ہے ، جب تقریبا پہلے سے ترتیب شدہ ڈیٹا پر کام کیا جاتا ہے۔ 2، لیکن داخل کرنے کی ترتیب عام طور پر غیر موثر ہے، کیونکہ داخل کرنے کی ترتیب صرف ایک بار ڈیٹا کو منتقل کرتی ہےimg

میں نے سب سے زیادہ استعمال کیا ہے (سب سے آسان) ، اور آپ؟


مزید

کوانٹیٹیشنکچھ جاوا اسکرپٹ ترتیب دینے والے الگورتھم کا کوڈ ملا https://www.w3cschool.cn/wqcota/

کوانٹیٹیشنشکریہ کوپ