1 00:00:00,000 --> 00:00:08,532 >> [MUSIC ప్లే] 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 అయితే, మేము శూన్యాలు పూరించి చేస్తున్నారు కొన్ని ముందుగా ఉన్న కోడ్ లో. 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 అమలవుతుంది n సమయం, ఇది చాలా నెమ్మదిగా ఉంది. 21 00:01:09,910 --> 00:01:13,850 , ఇది శోధించవచ్చు ఇచ్చిన ఏ జాబితా. 22 00:01:13,850 --> 00:01:20,130 మీ ఉద్యోగ బైనరీ శోధన అమలు చేయడం లాగ్ n యొక్క సమయం O అమలు ఇది. 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 >> Well యొక్క ఒక ఉదాహరణ చూద్దాం. 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 క్రమీకరించు వ్యూహం మరియు పూర్ణాంక పడుతుంది శ్రేణి యొక్క పరిమాణం n,. 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 >> శ్రేణుల ఉంటాయి ఎందుకంటే ఆ అవకాశం మేము ఇప్పుడు C. నేర్పుతున్న చేస్తాము జారీ 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, మొట్టమొదటి అంశం సమానం కోసం n మైనస్ 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 కనీస యెరే I. 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 >> [MUSIC ప్లే]