روب Bowden: ہیلو، میں روب ہوں. ہم کس طرح ایک بائنری تلاش ملازم ہیں؟ چلو باہر تلاش. تو، اس تلاش میں ہم جا رہے ہیں یاد رکھیں کہ تکراری طور پر عمل درآمد کرنے. تم نے بھی بائنری تلاش کو لاگو کر سکتے ہیں iteratively، لہذا آپ کو اس کیا تو، یہ بالکل ٹھیک ہے. اب سب سے پہلے، کی یاد کیا تلاش پیرامیٹرز کے لئے ہوتی ہیں. یہاں، ہم ہے جو INT قیمت، دیکھ صارف ہے قیمت ہونا چاہیے کے لئے تلاش. ہم int اقدار سرنی، دیکھو، جس ہم جس میں صف ہے قیمت کے لئے تلاش. اور ہم ہے جو، int ن کو دیکھ ہمارے صف کی لمبائی. اب، پہلی بات. ہم (ن) میں، 0 کے برابر ہے تو دیکھنے کے لئے چیک کریں ہم جھوٹے واپس جس صورت. ہم ایک خالی ہے تو وہ صرف کہہ رہا ہے صف، قیمت ایک میں واضح طور پر نہیں ہے خالی صف، تو ہم جھوٹے واپس آ سکتے ہیں. اب، ہم اصل بائنری کرنا چاہتے ہیں بائنری تلاش کی تلاش حصہ. تو، ہم مشرق تلاش کرنا چاہتے ہیں اس صف کے عنصر. یہاں، ہم مشرق میں تقسیم کیا (ن) کے برابر ہے کا کہنا ہے کہ 2 کی طرف سے، درمیانی عنصر ہے کی لمبائی جا رہا ہمارے صف 2 کی طرف سے تقسیم کیا گیا. اب ہم یہ دیکھنے کے لئے چیک کرنے کے لئے جا رہے ہیں درمیانی عنصر ہم قیمت کے برابر ہے کے لئے تلاش. اقدار کے درمیانی قیمت کے برابر ہے اگر ایسا ہے تو، ہم ہم نے محسوس کیا کے بعد سچ واپس آ سکتے ہیں ہمارے صف میں قیمت. لیکن یہ سچ نہیں تھا، اب ہم پنراورتی کرنے کی ضرورت ہے بائنری تلاش کے قدم. ہم یا تو تلاش کرنے کی ضرورت صف کے یا چھوڑ دیا صف کے وسط. مشرق میں اقدار ہے تو یہاں، ہم کہتے ہیں قیمت سے کم، کہ قیمت کا مطلب مشرق سے زیادہ تھا صف کی. تو قیمت کا حق ہونا چاہیے ہم صرف دیکھا اس عنصر. تو یہاں ہم جا رہے ہیں تکراری تلاش. اور ہم گزر رہے ہیں کیا میں دیکھتا ہوں ایک دوسرے میں اس کے لئے. لیکن ہم پر تلاش کرنے کے لئے جا رہے ہیں درمیانی عنصر کا حق. اور دوسری صورت میں، اس کا مطلب ہے کہ قیمت کے وسط سے بھی کم تھا صف، اور ہم جا رہے ہیں بائیں تلاش کرنے کے لئے. اب بائیں طرف کی جا رہی ہے تھوڑا سا آسان کو دیکھنے کے لئے. تو، ہم تکراری ہیں کہ یہاں دیکھ جہاں سب سے پہلے تلاش بلا دلیل ہے، پھر، قیمت ہے ہم تلاش کر رہے ہیں. دوسری دلیل ہونے جا رہا ہے ہم تلاش کر رہے تھے اس صف. اور آخری عنصر اب مشرق ہے. آخری پیرامیٹر ہمارے int ہے یاد رکھیں ن، کہ ہماری صف کی لمبائی ہے تو. تلاش کرنے کے لئے پنراورتی کال میں، ہم اب کہہ رہے ہیں کہ اس کی لمبائی صف مشرق ہے. تو، ہمارے صف سائز 20 اور ہم میں سے تھا مشرق ہے، 10 انڈیکس میں تلاشی 20 2 کی طرف سے تقسیم کیا گیا، کہ ہم ہیں کا مطلب ہے کہ نئے طور پر 10 گزر ہمارے صف کی لمبائی. یاد رکھیں کہ آپ کو ایک صف ہے جب لمبائی 10، کہ درست مطلب عناصر 0 9 کے ذریعے سوچکانکوں میں ہیں. تو یہ ہم کرنا چاہتے ہیں بالکل وہی جو ہے بائیں - ہماری اپ ڈیٹ صف کی وضاحت درمیانی عنصر سے صف. تو، صحیح لگ رہا ہے تھوڑا سا زیادہ مشکل. اب سب سے پہلے، کی لمبائی پر غور کے حق میں صف کے درمیانی عنصر. تو، ہمارے صف سائز ن کا تھا، تو نئی صف سائز ن مائنس ہو جائے گا مشرق مائنس 1. تو، ن مائنس مشرق کے بارے میں سوچتے ہیں. ایک بار پھر، صف کے سائز 20 کے تھے اور اگر ہم مشرق حاصل کرنے کے لئے 2 کی طرف سے تقسیم، تو مشرق پھر 10، (ن) مائنس مشرق ہے ہم 10 ہے، تو 10 دینے جا رہا ہے مشرق کے حق میں عناصر. لیکن ہم بھی اس منفی ہے 1، ہم نہیں کرنا چاہتے ہیں کے بعد مشرق خود بھی شامل ہیں. تو (ن) مائنس مشرق مائنس 1 ہمیں دیتا ہے دائیں عناصر کی کل تعداد صف میں مشرق انڈیکس کے. اب یہاں، یاد ہے کہ مشرق پیرامیٹر اقدار صف ہے. تو یہاں ہم ایک گزر رہے ہیں اپ ڈیٹ اقدار سرنی. یہ اقدار کے علاوہ مشرق کے علاوہ 1 ہے اصل میں تکراری طور پر کال کرتے ہوئے کہا کہ تلاش، ایک نئی صف میں گزر، جہاں کہ نئی صف کے وسط میں شروع ہوتا ہے اس کے علاوہ ہماری اصل اقدار سرنی میں سے ایک. اس کے لئے ایک متبادل نحو، اب اس آپ سے ہے، اشارہ کو دیکھنے کے لئے شروع کر دیا ہے ایمپرسینڈ اقدار مشرق کے علاوہ 1. تو، مشرق کا پتہ قبضہ اقدار کے علاوہ ایک عنصر. اب، آپ کو آرام دہ اور پرسکون نہیں تھے آپ، اس طرح ایک صف میں تبدیلی بھی استعمال کرتے ہوئے اس پر عمل درآمد کیا جا سکتا ہے ایک پنراورتی مددگار تقریب، جہاں کہ مدد گار تقریب لیتا ہے مزید دلائل. تو بجائے صرف قیمت لینے کے، صف، اور صف کے سائز، مددگار کی تقریب میں زیادہ وقت لگ سکتا ہے کم انڈیکس سمیت دلائل، آپ صف میں پرواہ ہے کہ اور آپ کو پرواہ ہے اوپری انڈیکس صف کے بارے میں. اور اس طرح دونوں کم کا ٹریک رکھنے انڈیکس اور اوپری انڈیکس، آپ ایسا نہیں کرتے کبھی نظر ثانی کرنے کی ضرورت ہے اصل اقدار سرنی. آپ کو صرف کرنے کے لئے جاری کر سکتے ہیں اقدار سرنی کا استعمال کرتے ہیں. لیکن یہاں، ہم ایک مددگار کی ضرورت نہیں ہے کو نوٹس جب تک ہم ہیں کے طور پر کام اصل پر نظر ثانی کرنے کے لئے تیار اقدار سرنی. ہم میں منتقل کرنے کے لئے تیار ہیں ایک اپ ڈیٹ اقدار. اب، ہم بائنری تلاش نہیں کر سکتے ہیں ناچھانٹا ہوا ہے کہ ایک صف. تو، اس کے مطابق حاصل کرتے ہیں. اب، اس طرح ماضی ہے نوٹس دو پیرامیٹرز ہے جو، اقدار int میں ہم چھانٹ رہا ہے کر رہے ہیں، اس صف، اور int ن، صف کی لمبائی ہے جو ہم چھانٹ رہا ہے کر رہے ہیں. تو، ہم یہاں پر عملدرآمد چاہتے ہیں ایک چھانٹ رہا ہے الگورتھم کہ مربع ن کے O ہے. آپ بلبلا طرح، انتخاب کے منتخب کر سکتے ہیں ترتیب، یا اندراج کی طرح، یا ہم نہ کچھ دیگر ترتیب کلاس میں دیکھا. لیکن یہاں، ہم جا رہے ہیں انتخاب کی طرح استعمال کرتے ہیں. تو، ہم iterate کرنے جا رہے ہیں پوری صف پر. ٹھیک ہے، یہاں ہم iterating کر رہے دیکھتے ہیں کہ 0 سے ن مائنس 1. کیوں نہیں تمام طریقہ ن ہے؟ ٹھیک ہے، ہم پہلے ہی کے مطابق ہے تو سب سے پہلے تو ن مائنس 1 عناصر، پہلے سے ہی ہونا چاہیے کیا آخری عنصر صحیح جگہ میں، تو پر چھانٹ رہا ہے پوری صف. اب، یاد کس طرح انتخاب ترتیب کام کرتا ہے. ہم پوری صف پر جانے کے لئے جا رہے ہیں میں کم از کم قیمت کے لئے تلاش صف اور چھڑی ہے کہ شروع میں. اس کے بعد ہم پورے پر جانے کے لئے جا رہے ہیں صف پھر دوسرے کے لئے تلاش سب سے چھوٹی عنصر، اور چھڑی ہے کہ میں دوسری پوزیشن میں صف، اور اسی طرح کی. تو، کہ اس کر رہا ہے. یہاں، ہم ہیں دیکھ رہے ہیں موجودہ کم از کم کی ترتیب میں ویں انڈیکس کی قدر. تو سب سے پہلے iteration پر، ہم جا رہے ہیں کم از کم قیمت پر غور کرنے کے لئے ہمارے صف کے آغاز. اس کے بعد، ہم پر iterate کرنے جا رہے ہیں کرنے کے لئے صف کی جانچ پڑتال، کے باقی سے وہاں کسی بھی عناصر کے چھوٹے تو دیکھ ہم اس وقت کر رہے ہیں کہ ایک کم از کم غور. تو یہاں، J علاوہ ایک قدریں - ہے ہم اس وقت کیا ہیں سے بھی کم کم از کم غور. اس کے بعد ہم کو اپ ڈیٹ کرنے جا رہے ہیں ہم کم از کم کرنے کے لئے ہے انڈیکس J علاوہ 1. لہذا، پوری صف میں ایسا، اور اس کے بعد لوپ، کم از کم کے لئے کی طرف سے کم از کم عنصر ہونا چاہئے صف میں ویں پوزیشن. ہم نے اس کے بعد، ہم تبادلہ کر سکتے ہیں میں ویں پوزیشن میں کم از کم قیمت صف میں. تو یہ صرف ایک معیاری سویپ ہے. ہم نے ایک عارضی کی قیمت میں سٹور - صف میں ویں قیمت - صف میں ویں قیمت میں ڈال دیا وہاں سے تعلق رکھتا ہے کہ کم از کم قیمت، اور پھر جہاں میں واپس سٹور استعمال کیا جاتا ہے موجودہ کم از کم قیمت صف میں ویں قیمت، تو ہم اس سے محروم نہیں کیا ہے. تو، اس پر جاری ہے اگلے iteration. ہم دوسرے کے لئے تلاش شروع کر دیں گے کم از کم قیمت اور میں اس داخل دوسری پوزیشن. تیسرے iteration پر، ہم نے کے لئے نظر کروں گا تیسرے کم از کم قیمت اور ڈالیں کہ تیسری پوزیشن میں، اور تو ہم نے ایک کے مطابق صف ہے جب تک. میرا نام روب ہے، اور اس انتخاب کی طرح تھا.