1 00:00:00,000 --> 00:00:08,532 >> [موسیقی بجانا] 2 00:00:08,532 --> 00:00:12,060 >> ZAMYLA چان: آپ کو شاید پہلی بات تلاش کے بارے میں نوٹس ہے کہ ہم نے پہلے ہی 3 00:00:12,060 --> 00:00:13,450 کوڈ ہمارے لئے لکھا ہے. 4 00:00:13,450 --> 00:00:15,160 یہ تقسیم کوڈ کہا جاتا ہے. 5 00:00:15,160 --> 00:00:18,000 تو ہم صرف ہمارے اپنے نہیں لکھ رہے ہیں اب شروع سے کوڈ. 6 00:00:18,000 --> 00:00:22,800 بلکہ، ہم voids کو میں بھرنے کر رہے ہیں کچھ پہلے سے موجود کوڈ میں. 7 00:00:22,800 --> 00:00:27,790 >> find.c پروگرام کے لئے اشارہ ٹیبل کو بھرنے کے لئے، تلاش 8 00:00:27,790 --> 00:00:32,189 ایک صارف پیش انجکشن کے لئے ٹیبل، اور اس طرح بلا اور کی طرف سے اس کرتا ہے 9 00:00:32,189 --> 00:00:35,590 تلاش، افعال کی وضاحت helpers.c میں. 10 00:00:35,590 --> 00:00:37,670 تو find.c پہلے ہی لکھا ہے. 11 00:00:37,670 --> 00:00:40,770 آپ کا کام مددگار لکھنے کے لئے ہے. 12 00:00:40,770 --> 00:00:41,870 >> تو ہم کیا کر رہے ہیں؟ 13 00:00:41,870 --> 00:00:44,210 ہم دو افعال عملدرآمد کر رہے ہیں. 14 00:00:44,210 --> 00:00:49,030 صحیح واپس جس میں تلاش کریں، تو ایک قیمت واپس لوٹنے، ٹیبل میں پایا جاتا ہے 15 00:00:49,030 --> 00:00:51,370 جھوٹی قیمت ہے نہیں ٹیبل میں. 16 00:00:51,370 --> 00:00:57,990 اور پھر ہم بھی طرح عملدرآمد کر رہے ہیں جس کی اقدار سے ملاقات کی طرح صف. 17 00:00:57,990 --> 00:00:59,960 >> تو تلاش نمٹنے ہیں. 18 00:00:59,960 --> 00:01:04,560 تلاش فی الحال ایک کے طور پر لاگو کیا جاتا ہے لکیری تلاش، لیکن آپ کو زیادہ سے زیادہ کر سکتے ہیں 19 00:01:04,560 --> 00:01:05,550 اس سے بہتر. 20 00:01:05,550 --> 00:01:09,910 لکیری تلاش O میں لاگو کیا جاتا ہے (ن) کے وقت کی، جس میں کافی سست ہے. 21 00:01:09,910 --> 00:01:13,850 اگرچہ، یہ تلاش کر سکتے ہیں اس کو دی گئی کسی بھی فہرست. 22 00:01:13,850 --> 00:01:20,130 آپ کا کام بائنری تلاش کو لاگو کرنے کے لئے ہے، لاگ ان ن کے وقت اے ختم ہو گیا ہے جس میں. 23 00:01:20,130 --> 00:01:21,130 یہ بہت تیز ہے. 24 00:01:21,130 --> 00:01:23,170 >> لیکن ایک شرط ہے. 25 00:01:23,170 --> 00:01:27,600 بائنری تلاش صرف تلاش کر سکتے ہیں پہلے کے مطابق فہرستوں کے ذریعے. 26 00:01:27,600 --> 00:01:30,370 ایسا کیوں ہے؟ 27 00:01:30,370 --> 00:01:32,620 >> چلو ایک مثال کے طور پر نظر آتے ہیں. 28 00:01:32,620 --> 00:01:36,280 اقدار کی ایک صف کو دیکھتے ہوئے، ٹیبل، ہم تلاش کر جا رہے ہیں 29 00:01:36,280 --> 00:01:37,130 ایک انجکشن کے لئے. 30 00:01:37,130 --> 00:01:40,460 اور اس مثال میں، عددی تین. 31 00:01:40,460 --> 00:01:44,130 بائنری تلاش پر کام کرتا ہے اس طرح ہے کہ ہم مشرق کی قیمت کا موازنہ 32 00:01:44,130 --> 00:01:48,370 زیادہ کی طرح انجکشن صف، کس طرح ہم مشرق کے لئے ایک فون کتاب کھولی 33 00:01:48,370 --> 00:01:50,660 ہفتے صفر میں صفحہ. 34 00:01:50,660 --> 00:01:54,650 >> تو مشرق کی قیمت کا موازنہ کے بعد انجکشن، آپ کو یا تو ضائع کر سکتے ہیں 35 00:01:54,650 --> 00:01:58,530 بائیں یا صف کے دائیں نصف آپ حد سخت کی طرف سے. 36 00:01:58,530 --> 00:02:03,390 اس صورت میں، تین کے بعد سے، ہمارے انجکشن، 10 سے بھی کم، درمیانی قیمت، ہے 37 00:02:03,390 --> 00:02:05,990 حق پابند کم کر سکتے ہیں. 38 00:02:05,990 --> 00:02:08,400 لیکن آپ کی حد کرنے کی کوشش کریں ہر ممکن حد تک تنگ. 39 00:02:08,400 --> 00:02:11,630 مشرق قیمت انجکشن نہیں ہے تو، تو آپ کو آپ کی ضرورت نہیں ہے 40 00:02:11,630 --> 00:02:13,010 آپ کی تلاش میں شامل ہو. 41 00:02:13,010 --> 00:02:17,310 تو آپ کو حق پابند کر رہے ہیں سخت کر سکتا ہے صرف ایک چھوٹے سے تھوڑا سا زیادہ تلاش کی حد، 42 00:02:17,310 --> 00:02:21,770 اور تو اور تو آگے تک آپ کو آپ کے انجکشن تلاش. 43 00:02:21,770 --> 00:02:23,480 >> تو کیا pseudocode طرح لگتی ہے؟ 44 00:02:23,480 --> 00:02:28,420 ہم اب بھی کے ذریعے تلاش کر رہے ہیں ٹھیک ہے جبکہ کی فہرست اور بھی عناصر ہیں 45 00:02:28,420 --> 00:02:33,690 میں نظر آتے ہیں، ہم، فہرست کے وسط لے اور ہے کہ مشرق کی قیمت کا موازنہ 46 00:02:33,690 --> 00:02:34,950 ہمارے انجکشن. 47 00:02:34,950 --> 00:02:37,310 اگر وہ برابر ہیں، تو یہ ہم نے کا مطلب انجکشن پایا اور ہم کر سکتے ہیں 48 00:02:37,310 --> 00:02:38,990 سچ واپس. 49 00:02:38,990 --> 00:02:42,870 >> دوسری صورت میں، انجکشن سے کم ہے تو مشرق کی قیمت، اس کے بعد کہ ہم مطلب 50 00:02:42,870 --> 00:02:47,280 صحیح نصف ضائع، اور صرف کر سکتے ہیں صف کے بائیں جانب تلاش. 51 00:02:47,280 --> 00:02:51,090 دوسری صورت میں، ہم تلاش کر لیں گے صف کے دائیں جانب. 52 00:02:51,090 --> 00:02:54,410 اور آخر میں، اگر آپ کو کسی بھی ضرورت نہیں ہے مزید تلاش کرنے کے لئے چھوڑ دیا عناصر لیکن آپ 53 00:02:54,410 --> 00:02:58,050 اگر آپ نے ابھی تک اپنی انجکشن نہیں مل سکا ہے جھوٹے واپس کیونکہ انجکشن 54 00:02:58,050 --> 00:03:01,890 یقینی طور پر ٹیبل میں نہیں ہے. 55 00:03:01,890 --> 00:03:05,270 >> اس pseudocode کے بارے میں اب ایک صاف بات بائنری تلاش میں یہ ہو سکتا ہے 56 00:03:05,270 --> 00:03:09,940 تکراری یا تو کے طور پر تشریح یا پنراورتی عمل. 57 00:03:09,940 --> 00:03:13,810 آپ کو بلایا تو اس پنراورتی ہو گا تلاش کے اندر اندر تلاش تقریب 58 00:03:13,810 --> 00:03:17,350 صف کے یا تو نصف پر کام. 59 00:03:17,350 --> 00:03:21,030 ہم تھوڑا بعد میں تکرار کا احاطہ کریں گے کورس کے، لیکن یہ ایک ہے کہ جانتے ہیں 60 00:03:21,030 --> 00:03:24,190 آپشن آپ کو کرنے کی کوشش کرنا چاہتے ہیں. 61 00:03:24,190 --> 00:03:26,030 >> اب ترتیب کو دیکھو. 62 00:03:26,030 --> 00:03:30,750 ترتیب ایک صف اور عددی لیتا ہے صف کے سائز ہے جو ن،. 63 00:03:30,750 --> 00:03:34,030 اب مختلف مختلف اقسام ہیں قسم کے، اور آپ کو کچھ میں دیکھ سکتے ہیں 64 00:03:34,030 --> 00:03:36,370 ڈیمو اور وضاحت کے لئے شارٹس. 65 00:03:36,370 --> 00:03:39,580 کے لئے واپسی کی قسم ہماری ترتیب تقریب باطل ہے. 66 00:03:39,580 --> 00:03:43,580 تو ہے کہ ہم نہیں جا رہے ہیں کا مطلب ہے کہ ترتیب کی طرف سے کسی بھی صف واپس کرنے کے لئے. 67 00:03:43,580 --> 00:03:48,140 ہم اصل میں بہت تبدیل کرنے کے لئے جا رہے ہیں ہم میں منظور کیا گیا تھا اس صف. 68 00:03:48,140 --> 00:03:52,290 >> arrays کے ہیں کیونکہ اور یہ کہ ممکن ہے اب ہم سی میں حوالہ کی طرف سے منظور کریں گے 69 00:03:52,290 --> 00:03:55,290 بعد میں اس بارے میں مزید دیکھیں، لیکن انتقال کے درمیان بنیادی فرق 70 00:03:55,290 --> 00:03:59,340 ایک عدد صحیح اور پاسنگ کی طرح کچھ میں ایک صف میں، یہ ہے کہ جب آپ 71 00:03:59,340 --> 00:04:03,490 ایک عدد صحیح میں منتقل، سی صرف کی جا رہی ہے اس عددی کی ایک کاپی بنانے کے لئے اور منتقل 72 00:04:03,490 --> 00:04:04,450 تقریب کے لئے اس. 73 00:04:04,450 --> 00:04:08,530 اصل متغیر کو تبدیل نہیں کیا جائے گا تقریب ختم ہو گیا ہے ایک بار. 74 00:04:08,530 --> 00:04:12,480 ایک صف کے ساتھ، دوسری طرف، یہ ہے ایک کاپی بنانے کے لئے جا، اور آپ کو دونگا 75 00:04:12,480 --> 00:04:17,910 ایڈیٹنگ ہو بہت صف خود. 76 00:04:17,910 --> 00:04:21,269 >> تو ترتیب کی ایک قسم ہے انتخاب کی طرح. 77 00:04:21,269 --> 00:04:24,750 انتخاب کی طرح میں شروع ہونے والے کی طرف سے کام کرتا ہے آپ iterate کے پھر شروع، اور 78 00:04:24,750 --> 00:04:26,820 سے زیادہ اور سب سے چھوٹی عنصر کو تلاش کریں. 79 00:04:26,820 --> 00:04:30,710 اور پھر آپ کا تبادلہ ہے کہ سب سے چھوٹی سب سے پہلے ایک کے ساتھ عنصر. 80 00:04:30,710 --> 00:04:34,360 اور پھر آپ دوسرے عنصر پر منتقل ، اگلے سب سے چھوٹی تلاش 81 00:04:34,360 --> 00:04:38,320 تو عنصر، اور سویپ کے ساتھ صف میں دوسرے عنصر کی وجہ سے 82 00:04:38,320 --> 00:04:41,100 پہلا عنصر پہلے ہی کے مطابق ہے. 83 00:04:41,100 --> 00:04:45,370 اور تو آپ کو ہر کے لئے جاری سب سے چھوٹی شناخت میں عنصر 84 00:04:45,370 --> 00:04:47,690 قیمت اور اسے باہر گماگمن. 85 00:04:47,690 --> 00:04:53,460 >> 0، بہت پہلے عنصر کے برابر کے لئے ن مائنس 1 کے لئے، آپ کا آپس میں موازنہ کرنے کے لئے جا رہے ہیں 86 00:04:53,460 --> 00:04:57,820 ہر اگلے اس کے بعد قیمت اور تلاش کم از کم قیمت کے انڈیکس. 87 00:04:57,820 --> 00:05:02,520 آپ کو کم از کم قیمت انڈیکس ایک بار جب، آپ صف کی اس قدر تبادلہ کر سکتے ہیں 88 00:05:02,520 --> 00:05:05,930 کم از کم اور صف میں 89 00:05:05,930 --> 00:05:09,760 >> ترتیب کی ایک اور قسم ہے کہ آپ کر سکتے ہیں کو لاگو بلبلا طرح ہے. 90 00:05:09,760 --> 00:05:14,380 فہرست پر تو بلبلا طرح iterates ہے ملحق عناصر اور موازنہ 91 00:05:14,380 --> 00:05:17,720 عناصر گماگمن کہ غلط حکم میں ہیں. 92 00:05:17,720 --> 00:05:22,380 اور اس طرح، سب سے بڑا عنصر بلبلا ختم کرنے کے لئے کرے گا. 93 00:05:22,380 --> 00:05:28,070 اور فہرست میں ایک بار نہیں کے مطابق ہے عناصر میں تبدیل کر دیا گیا ہے. 94 00:05:28,070 --> 00:05:31,920 >> لہذا ان کی طرح دو مثالیں ہیں آپ کے لئے پر عملدرآمد کر سکتے ہیں کہ یلگوردمز 95 00:05:31,920 --> 00:05:33,230 تلاش کے پروگرام. 96 00:05:33,230 --> 00:05:37,350 آپ کی طرح ختم، اور آپ کو ایک بار تلاش کیا، آپ فارغ ہو. 97 00:05:37,350 --> 00:05:39,720 میرا نام کیا Zamyla ہے، اور اس CS50 ہے. 98 00:05:39,720 --> 00:05:46,987 >> [موسیقی بجانا]