لکیری تلاش اور ثنائی تلاش کے درمیان فرق
مواد
لکیری سرچ اور بائنری سرچ وہ دو طریقے ہیں جن کے لئے ارے میں استعمال ہوتا ہے تلاش کر رہا ہے عناصر. کسی بھی ترتیب میں یا تصادفی طور پر جمع کردہ عناصر کی فہرست میں عنصر تلاش کرنے کا عمل ہے۔
خطوطی تلاش اور بائنری تلاش کے درمیان اہم فرق یہ ہے کہ بائنری تلاش میں عناصر کی ترتیب شدہ فہرست سے کسی عنصر کی تلاش میں کم وقت لگتا ہے۔ تو یہ اندازہ لگایا گیا ہے کہ ثنائی تلاش کے طریقہ کار کی استعداد لکیری تلاش سے کہیں زیادہ ہے۔
دونوں کے درمیان ایک اور فرق یہ ہے کہ بائنری تلاش کے لئے ایک شرط موجود ہے ، یعنی عناصر کا ہونا ضروری ہے چھانٹ جب لکیری تلاش میں ہوں تو ایسی کوئی شرط نہیں ہے۔ اگرچہ تلاش کے دونوں طریقے مختلف تکنیک استعمال کرتے ہیں جس پر ذیل میں تبادلہ خیال کیا گیا ہے۔
- موازنہ چارٹ
- تعریف
- کلیدی اختلافات
- نتیجہ اخذ کرنا
موازنہ چارٹ
موازنہ کی بنیاد | لکیری تلاش | ثنائی تلاش |
---|---|---|
وقت کی پیچیدگی | O (N) | O (لاگ 2 ن) |
بہترین معاملہ کا وقت | پہلا عنصر O (1) | سینٹر عنصر O (1) |
کسی صف کے لئے ضروری ہے | ضرورت نہیں | سرنی ترتیب میں ہونی چاہئے |
عناصر کی تعداد میں N کے لئے بدترین معاملہ | ن موازنہ کی ضرورت ہے | صرف لاگ کے بعد نتیجہ اخذ کیا جاسکتا ہے2 ن موازنہ |
پر عملدرآمد کیا جاسکتا ہے | صف اور لنکڈ فہرست | منسلک فہرست میں براہ راست لاگو نہیں کیا جاسکتا |
آپریشن داخل کریں | آسانی سے فہرست کے آخر میں داخل کیا گیا | ترتیب شدہ فہرست کو برقرار رکھنے کے ل its اس کی مناسب جگہ پر کارروائی کرنے کی ضرورت ہے۔ |
الگورتھم کی قسم | فطرت میں Iterative | فطرت میں تقسیم اور فتح |
افادیت | استعمال کرنے میں آسان اور کسی بھی حکم دینے والے عناصر کی ضرورت نہیں۔ | بہرحال مشکل الگورتھم اور عناصر کو ترتیب سے ترتیب دیا جانا چاہئے۔ |
کوڈ کی لکیریں | کم | مزید |
لکیری تلاش کی تعریف
خطی تلاش میں ، صف کے ہر عنصر کو ایک ایک کرکے ایک منطقی ترتیب سے بازیافت کیا جاتا ہے اور جانچ پڑتال کی جاتی ہے کہ آیا یہ مطلوبہ عنصر ہے یا نہیں۔ اگر تمام عناصر تک رسائی حاصل ہوجائے ، اور مطلوبہ عنصر نہ ملے تو تلاشی ناکام ہوگی۔ بدترین صورت میں ، اوسط کیس کی تعداد جس میں ہمیں صف (N / 2) کا نصف اسکین کرنا پڑسکتا ہے۔
لہذا لکیری تلاش کو اس تکنیک کی حیثیت سے تعبیر کیا جاسکتا ہے جو دیئے گئے شے کو تلاش کرنے کے لئے ترتیب وار سرے سے آگے بڑھ جاتی ہے۔ ذیل میں دیا گیا پروگرام سرچ کا استعمال کرتے ہوئے صف کے عنصر کی تلاش کو واضح کرتا ہے۔
کارکردگی لکیری تلاش کی
تلاش کے ٹیبل میں ریکارڈ تلاش کرنے میں وقت کی کھپت یا موازنہ کی تعداد تکنیک کی کارکردگی کا تعین کرتی ہے۔ اگر مطلوبہ ریکارڈ سرچ ٹیبل کی پہلی پوزیشن میں موجود ہے ، تو صرف ایک موازنہ کیا جائے گا۔ جب مطلوبہ ریکارڈ آخری ہے ، تو n موازنہ کرنا پڑے گا۔ اگر ریکارڈ تلاش کے ٹیبل میں کہیں پیش کرنا ہے تو ، اوسطا ، موازنہ کی تعداد ہوگی (n + 1/2) اس تکنیک کی بدترین کارکردگی کی کارکردگی O (n) ہے جس کا اطلاق پھانسی کے حکم سے ہوتا ہے۔
سی پروگرام لکیری تلاش کی تکنیک کے ساتھ کسی عنصر کی تلاش کرنا۔
# شامل کریں ثنائی کی تلاش ایک انتہائی موثر الگورتھم ہے۔ تلاش کی یہ تکنیک کم سے کم ممکن موازنہ میں دی گئی شے کو تلاش کرنے میں کم وقت خرچ کرتی ہے۔ بائنری تلاش کرنے کے ل first ، پہلے ، ہمیں سرنی عناصر کو ترتیب دینا ہوگا۔ اس تکنیک کے پیچھے منطق ذیل میں دی گئی ہے: تین معاملات پیدا ہوسکتے ہیں: اسی مرحلے کو دہرائیں جب تک کہ کوئی عنصر تلاش نہ ہو یا تلاش کے علاقے میں ختم ہوجائے۔ اس الگورتھم میں ، ہر بار تلاش کے علاقے میں کمی آرہی ہے۔ لہذا موازنہ کی تعداد زیادہ سے زیادہ لاگ (N + 1) پر ہے۔ نتیجہ کے طور پر ، جب لکیری تلاش کے مقابلے میں یہ ایک موثر الگورتھم ہے ، لیکن بائنری تلاش کرنے سے پہلے صف کو ترتیب دینا ہوگا۔ سی پروگرام بائنری تلاش کی تکنیک کے ساتھ عنصر تلاش کرنے کے ل. # شامل کریں لکیری اور بائنری تلاش الگورتھم دونوں اطلاق کے لحاظ سے کارآمد ثابت ہوسکتے ہیں۔ جب کوئی صف ڈیٹا کا ڈھانچہ ہو اور عناصر کو ترتیب سے ترتیب دیا جائے تو پھر بائنری تلاش کو ترجیح دی جاتی ہے جلدیتلاش کر رہا ہے۔ اگر منسلک فہرست اعداد و شمار کا ڈھانچہ ہے اس سے قطع نظر کہ عناصر کا اہتمام کیسے کیا جاتا ہے تو ، بائنری سرچ الگورتھم کے براہ راست عمل درآمد کی عدم دستیابی کی وجہ سے لکیری تلاش کو اپنایا جاتا ہے۔ عام ثنائی کی تلاش کے الگورتھم کو منسلک فہرست میں ملازمت نہیں دی جاسکتی ہے کیوں کہ منسلک فہرست فطرت میں متحرک ہے اور یہ معلوم نہیں ہے کہ درمیانی عنصر اصل میں کہاں تفویض کیا گیا ہے۔ لہذا ، بائنری سرچ الگورتھم کی مختلف حالتوں کو ڈیزائن کرنے کی ضرورت ہے جو لنکڈ لسٹ پر بھی کام کرسکیں کیونکہ لکیری تلاش کے بجائے بائنری تلاش عمل میں تیز ہے۔ثنائی تلاش کی تعریف
نتیجہ اخذ کرنا