[సంగీతాన్ని] అండీ పెంగ్: సెక్షన్ వారానికి 3 కు స్వాగతం. అన్ని ధన్యవాదాలు, మీరు అబ్బాయిలు, ఈ ముందువి ప్రారంభ సమయం నేడు. మేము ఒక nice, కొద్దిగా పొందారు సన్నిహిత సమూహం నేడు. సో ఆశాజనక మేము పొందుతారు ముగింపు, బహుశా, ప్రారంభ, కొద్దిగా ప్రారంభ రోజు. కాబట్టి త్వరగా కొన్ని ఎజెండా నేడు ప్రకటనలు. మేము మొదలు ముందు, మేము ఉన్నాము కేవలం వెళ్ళి కొన్ని సంక్షిప్త రవాణా సమస్యలను, pset ప్రశ్నలు, debrief, ఆ వంటి విషయాలు. మరియు తర్వాత మేము, కుడి ప్రవేశిస్తాడు చేస్తాము. మేము చేయడానికి GDB అనే డీబగ్గర్ ఉపయోగిస్తాము మా కోడ్, దోషాలను ఎత్తిచూపుతూ ప్రారంభించిన డేవిడ్ ఇతర రోజు ఉపన్యాసంలో వివరించారు. మేము రకాల నాలుగు రకాల పైగా వెళ్తారో. మేము చాలా త్వరగా వాటిని పైగా వెళ్తారో వారు అందంగా ఇంటెన్సివ్ ఉన్నకారణంగా. కానీ తెలిసిన అన్ని స్లైడ్లు మరియు సోర్స్ కోడ్ ఆన్లైన్ ఎల్లప్పుడూ ఉంటాయి. సో, మీ perusal వద్ద, సంకోచించకండి తిరిగి వెళ్లి పరిశీలించి. మేము ద్వారా వెళ్తారో asymptotic సంజ్ఞామానం, ఇది కేవలం ఒక ఫాన్సీ మార్గం చెప్పడం "runtimes," మేము పెద్ద O కలిగి ఉన్న దీనిలో డేవిడ్ ఉపన్యాసంలో వివరించారు. మరియు మేము కూడా ఒమేగా, కలిగిన తక్కువ కట్టుబడి రన్టైమ్ ఉంది. మరియు మేము ఒక బిట్ మరింత మాట్లాడదాము లో-లోతు ఎలా ఆ పని గురించి. చివరికి, మేము బైనరీ శోధన పైగా వెళ్తారో ఎందుకంటే ఇప్పటికే కలిగి మీరు చాలా మీ psets నచ్చావు బహుశా తెలుసు మీ pset లో ఒక ప్రశ్న. సో మీరు అన్ని సంతోషంగా ఉంటాం మేము ఈ రోజు కవర్ ఆ. చివరికి, ప్రతి మీ విభాగం చూడు, నేను నిజానికి వద్ద 15 నిమిషాలు మిగిలి ముగింపు కేవలం వెళ్ళి pset3 లాజిస్టిక్స్ ఏవైనా ప్రశ్నలు, బహుశా మార్గదర్శకత్వం యొక్క ఒక బిట్, మీరు రెడీ ఉంటే, మేము ప్రోగ్రామింగ్ ముందు. కాబట్టి యొక్క ద్వారా పొందుటకు ప్రయత్నించండి తెలపండి అందంగా త్వరగా పదార్థం. మరియు తర్వాత మేము కొంత సమయం ఖర్చు చేయవచ్చు pset కోసం మరింత ప్రశ్నలు తీసుకొని. అలాగే. త్వరగా, కాబట్టి కేవలం కొన్ని మేము ముందు ప్రకటనలు నేడు ప్రారంభం. ముందుగా, చేయడానికి స్వాగతం మీ psets రెండు ద్వారా. నేను your-- అవును, వీలు యొక్క వద్ద ఒక లుక్ పట్టింది ఒక చప్పట్లు ఒక రౌండ్ పొందండి. అసలైన, నేను నిజంగా నిజంగా ఆకట్టుకున్నాయి. నేను మీరు అబ్బాయిలు కోసం మొదటి pset శ్రేణీకృత గత వారం మరియు మీరు అబ్బాయిలు నమ్మశక్యం చేసింది. శైలి పాయింట్ ఉంది కొన్ని వ్యాఖ్యలు పాటు. మీరు ఎల్లప్పుడూ నిర్ధారించుకోండి మీ కోడ్ వ్యాఖ్యానించింది. కానీ మీ psets పాయింట్ ఉన్నాయి. మరియు ఇది ఉంచడానికి. దానికి grader కోసం బావుంటుంది మీరు అబ్బాయిలు ఉంచడం ఉన్నాయి చూడండి మీ శైలిలో ఎక్కువ కృషి లో మీ కోడ్ మరియు మీ డిజైన్ మీరు చూడటానికి కోసం మేము కావాలనుకుంటున్నారని. నేను నా కృతజ్ఞతా పాటు ప్రయాణిస్తున్న నేను టాస్ మిగిలిన. అయితే ఉన్నాయి కొన్ని debrief ప్రశ్నలు నేను ఆ వెళ్ళి కావలసిన రెండు నా జీవితం తయారవుతుంది మరియు ఇతర చాలా టాస్ 'ఒక బిట్ సులభంగా నివసిస్తున్నారు. ముందుగా, నేను గమనించాము ఈ గత మీరు ఎన్ని వారం పై check50 నడుస్తున్న చేశారు మీరు ముందు మీ కోడ్ submit? అలాగే. కాబట్టి ప్రతి ఒక్కరూ check50 చేస్తూ ఉండాలి, నిజానికి మేము ఒక రహస్య ఎందుకంటే మా సరి భాగంగా check50 అమలు మీ కోడ్ పరీక్ష కోసం స్క్రిప్ట్స్. మీ కోడ్ విఫలమౌతోందని చేస్తే check50, అన్ని సంభావ్యత లో, అది బహుశా జరగబోతోంది అలాగే మా చెక్ విఫలం. కొన్నిసార్లు మీరు అబ్బాయిలు కుడి సమాధానాలను. వంటి, అత్యాశ, కొన్ని మీరు కుడి సంఖ్యలు ఉంటాయి, మీరు కొన్ని అదనపు అంశాలను ముద్రించాలా. మరియు ఆ అదనపు stuff నిజానికి చెక్ విఫలమైతే, కంప్యూటర్ లేదు ఎందుకంటే నిజంగా అది కోసం ఆరాటపడుతుంది ఏమి. కాబట్టి ఇది, ద్వారా అమలు చేస్తుంది మీ అవుట్పుట్ లేదు చేసే చూడండి మేము సమాధానం ఆశించే ఏమి మ్యాచ్ ఉంటుంది, మరియు ఇది తప్పు గుర్తుగా. అండ్ ఐ జరిగిన తెలుసు మీ సందర్భాలలో కొన్ని ఈ వారం. కాబట్టి నేను తిరిగి మరియు మానవీయంగా వెళ్ళింది అందరి కోడ్ regraded. అయితే భవిష్యత్తులో, నిర్ధారించుకోండి దయచేసి మీరు రన్ చేస్తున్న మీ కోడ్ లో 50 తనిఖీ. ఇది TA కోసం ఒక నొప్పి రకంగా ఎందుకంటే regrade మానవీయంగా తిరిగి వెళ్ళి కలిగి ప్రతి కోసం ప్రతి pset సింగిల్, చిన్న తప్పిన సందర్భం. కాబట్టి నేను ఏ పాయింట్లు ఊపందుకోలేదు. నేను బహుశా బయలుదేరాడు అనుకుంటున్నాను ఒకటి లేదా డిజైన్ రెండు. అయితే భవిష్యత్తులో, ఉంటే మీరు check50 విఫలమైందని చేస్తున్నారు పాయింట్లు తీసుకోవాలి సరి ఆఫ్. ఇంకా, psets ఉన్నాయి మధ్యాహ్నం శుక్రవారాలలో కారణంగా. నేను ఏడు నిమిషాల ఉందని నేను అనుకుంటున్నాను మేము మీరు ఇవ్వాలని ఆ చివరి గడువు సమయం. హార్వర్డ్ సమయం ప్రకారం, వారు అనుమతి చేస్తున్నాం ఏడు నిమిషాలు ఆలస్యంగా అన్నింటికీ ఉంటుంది. కాబట్టి ఇక్కడ యాలె, మేము చేస్తాము అలాగే ఆ కట్టుబడి. కానీ చాలా చక్కని, 12:07 వద్ద, మీ pset లేదు ఉంటే, ఇది చాలా ఆలస్యంగా గుర్తించబడతాయి జరగబోతోంది. అయితే కనుక అది గుర్తించబడింది దివంగత, TA-- నేను ఉన్నాను ఇప్పటికీ మీ psets శ్రేణి కావడం. సో మీరు ఇంకా ఒక గ్రేడ్ కనిపిస్తాయి చూస్తారు. అయితే, ఆ తెలుసు సెమిస్టర్ చివరిలో, అన్ని చివరలో psets కేవలం ఉంటుంది స్వయంచాలకంగా కంప్యూటర్ ద్వారా జీరో. మేము రెండు కారణాల కోసం దీన్ని. ఒకటి కొన్నిసార్లు మేము పొందుటకు డీన్ యొక్క సాకులు వంటి, క్షమించరాదు, తరువాత ఆ నేను ఇంకా గురించి తెలియదు. కనుక మేము శ్రేణి చేస్తున్నారు ఖచ్చితంగా చేయాలనుకుంటున్న కేవలం విషయంలో ప్రతిదీ వంటి, నేను రెడీ ఒక డీన్ యొక్క అవసరం లేదు లేదు. మరియు రెండవది, లో ఉంచడానికి మనస్సు, మీరు ఇంకా ఒక pset డ్రాప్ పూర్తి పరిధిని పాయింట్లు ఉన్నాయి. కాబట్టి మేము గ్రేడ్ చేయాలని మీ psets అన్ని కేవలం మీ స్కోప్ యొక్క నిర్ధారించుకోండి ఆ అక్కడ మరియు మీరు వాటిని ప్రయత్నిస్తున్న. అది ఆలస్యం కాబట్టి కూడా, మీరు ఇప్పటికీ చేస్తాము పరిధిని పాయింట్లు కోసం క్రెడిట్ పొందండి, నేను అనుకుంటున్నాను. కథ కాబట్టి, నైతిక చేయడానికి ఖచ్చితంగా మీ psets ఆన్ సమయం లో ఉన్నాయి. మరియు వారు సమయం లో లేకుంటే, అది గొప్ప కాదు తెలుసు. అవును, నేను ముందుకు ముందు, ఎవరైనా లేదు pset చూడు గురించి ఏవైనా ప్రశ్నలు? అవును. ప్రేక్షకులు: మీరు మేము చెప్పే తెలుసా psets ఒకటి డ్రాప్ చెయ్యవచ్చు? అండీ పెంగ్: అవును. కాబట్టి తొమ్మిది psets మొత్తం ఉంది సెమిస్టర్ క్రమంలో. మరియు మీరు పరిధిని కలిగి ఉంటే points-- కాబట్టి పరిధిని కేవలం ఉంది చాలా చక్కని, మీరు ప్రయత్నిస్తున్నాయి సమస్య, మీరు సమయం లో పెట్టటం ఉంటాయి మీరు చేసిన చూపిస్తున్నాము ప్రదర్శించారు మీరు స్పెక్ చదివారు. ఆ అందమైన ఎక్కువ ఆస్కారం ఉంది. మరియు మీరు అమలు చేస్తున్నా ఉంటే పరిధిని పాయింట్లు, మేము అత్యల్ప డ్రాప్ చెయ్యవచ్చు పూర్తి పరిధిని ఒకటి. కాబట్టి ఆ మీ ప్రయోజనం వార్తలు పూర్తి మరియు ప్రతి pset ప్రయత్నించండి. కూడా upload-- ఏదీ ఉంటే వాటిని అన్ని అప్లోడ్ పని. మరియు తర్వాత మేము ఆశాజనక చేయగలరు మీరు ఆ పాయింట్లు కొన్ని తిరిగి ఇవ్వాలని. కూల్. ఏదైనా ఇతర ప్రశ్నలు? గ్రేట్. రెండవది, కార్యాలయ కొన్ని hours-- కార్యాలయం గంటల గురించి శీఘ్ర గమనికలు. కాబట్టి మొదటి, ప్రారంభ వారంలో వస్తాయి. ఎవరూ వద్ద ఎప్పుడూ ఉంది సోమవారాలు కార్యాలయం గంటల. క్రిస్టబుల్ వచ్చింది కార్యాలయం గంటల గత రాత్రి. అవును క్రిస్టబెల్. మరియు మేము కార్యాలయం వద్ద ఏమి ఉన్నాయి? గంటల గత రాత్రి క్రిస్టబెల్? ప్రేక్షకులు: మేము ఐస్ క్రీమ్ వచ్చింది. అండీ పెంగ్: సో అవునా, మేము కలిగి కార్యాలయం గంటల వద్ద ఐస్ క్రీం గత రాత్రి. నేను మీరు వాగ్దానం ఇవ్వలేము మేము కార్యాలయం గంటల వద్ద ఐస్ క్రీం ఉంటుంది ప్రతి వారం, నేను మీరు హామీ చేయవచ్చు ఏమి గణనీయంగా ఉంటుందని ఉంది TA నిష్పత్తి మెరుగైన విద్యార్ధిని. సక్రమం వలె, ఇది ఒక మూడు వంటిది. తో ఆ కాంట్రాస్ట్ అయితే గురువారం, మీరు గురించి 150 పొందారు నిజంగా పిల్లలు మరియు ఏ ఐస్ క్రీం ఉద్ఘాటించారు. మరియు అది కేవలం ఎవరైనా ఉత్పాదక కాదు. కథ కాబట్టి, నైతిక ప్రారంభ వస్తాయి ఉంటుంది కార్యాలయం గంటల మంచి విషయాలు జరగవచ్చు. కూడా, ప్రశ్నలు అడగండి సిద్ధం వస్తాయి. నీకు తెలుసు? సంబంధం లేకుండా TAS, నేను , చెప్పడం జరిగింది అనుకుంటున్నాను, మేము ఒక జంట విద్యార్థులు పొందడానికి చేసిన 10:50, వంటి, వద్ద గురువారం వచ్చిన స్పెక్ చదవడం పొందకుండానే నాకు సహాయం వంటి, నాకు సహాయం. దురదృష్టవశాత్తు ఆ సమయంలో, అక్కడ చాలా మేము మీకు సహాయం చేయవచ్చు. కాబట్టి ప్రారంభ వారంలో రండి. ఆఫీసు గంటల ప్రారంభ వస్తాయి. ప్రశ్నించేందుకు సిద్ధమైన వస్తాయి. వంటి, మీరు నిర్ధారించుకోండి ఒక విద్యార్థి, ఎక్కడ మీరు తద్వారా ఉండాలి టాస్ వెంట మీకు మార్గనిర్దేశం చేయవచ్చు ఏమి కార్యాలయం గంటల ఇది తప్పక కోసం కేటాయించాలి. రెండవది, నేను ప్రొఫెసర్లు తెలుసు పరీక్షలతో మాకు ఆశ్చర్యం ఇష్టం. నేను ఒక ప్రొఫెసర్ ఉన్నవారు యో, వంటి, ద్వారా, ఆ మధ్యంతర గుర్తు మీరు తదుపరి సోమవారం ఉన్నాయి. అవును, నేను ఆ మధ్యంతర గురించి తెలియదు. కాబట్టి నేను ఆ వెళుతున్న TA మీరు అన్ని ఆ క్విజ్ గుర్తుచేస్తుంది మీకు తెలిసిన, ఎందుకంటే 0 ఉంది, మేము CS ఉన్నారు. ఇప్పుడు మేము చేసిన శ్రేణుల చేసిన, మీరు పొందండి అది క్విజ్ 0 వై, EH, 1 క్విజ్ లేదు? అలాగే. ఓహ్, నేను ఆ ఒకటి కొన్ని chuckles వచ్చింది. అలాగే. కాబట్టి క్విజ్ 0 ఉంటే అక్టోబర్ 14 ఉంటుంది మీరు సోమవారం-బుధవారం విభాగంలో అయితే మరియు అక్టోబర్ 15 మీరు ఉన్నారని ఉంటే మంగళవారం-గురువారం విభాగం. ఈ వర్తించదు హార్వర్డ్ వద్ద మీరు యొక్క ఆ నేను మీరు అన్ని ఉంటుందని భావిస్తున్నాను who-- 14 న మీ క్విజ్ తీసుకొని. కాబట్టి యేః, వచ్చే వారం, ఉంటే డేవిడ్ ఉపన్యాసంలో వెళ్తాడు అవును, ఆ కాబట్టి క్విజ్ తదుపరి వారం, మీరు అన్ని ఎందుకంటే నిర్ఘాంతపోయాడు కాదు మీరు విభాగం వచ్చింది మరియు మీరు ఆ తెలుసు మీ 0 క్విజ్ రెండు వారాల ఉంది. మరియు మేము సమీక్ష ఉంటుంది సెషన్స్ మరియు ప్రతిదీ. గురించి ఎటువంటి చింత ఆ కోసం భయపడ్డాను అవుతోంది. ఏదైనా ప్రశ్నలు ఏవైనా ప్రశ్నలు ముందు అన్ని గురించి రవాణా సమస్యలను వద్ద, గ్రేడింగ్, ఆఫీసు గంటల, విభాగాలు? అవును. ప్రేక్షకులు: క్విజ్ ఉంది కాబట్టి ఉపన్యాసం సమయంలో చేస్తాడు? అండీ పెంగ్: అవును. క్విజ్ కాబట్టి, నేను అనుకుంటున్నాను, 60 ఆ సమయంలో స్లాట్ లో కేటాయించిన నిమిషాల మీరు కేవలం తీసుకొని వెళ్తాము ఆ లెక్చర్ హాల్ లో. కాబట్టి మీరు వస్తాయి లేదు ఒక యాదృచ్ఛిక 7:00 PM, వంటి, న. ఇది అంతా మన మంచికే. అవును. కూల్. అయితే సరే. కాబట్టి మేము చేయబోతున్నామని మీరు ఒక భావన పరిచయం డేవిడ్ రకమైన ఇప్పటికే ఉంది ఈ వారం ఈ గత వారం ఉపన్యాసంలో తాకిన. ఇది GDB అని. మరియు ఎలా మీరు అనేక, లో ఉండగా మీ psets రాయడం వాస్తవానికి, అని ఒక పెద్ద బటన్ గమనించాము మీ IDE పైన "డీబగ్"? అలాగే. కాబట్టి ఇప్పుడు మేము నిజానికి త్రవ్వితీయు పొందుతారు ఏమి ఆ బటన్ యొక్క మిస్టరీ నిజానికి లేదు. మరియు నేను దానిని ఒక, మీరు హామీ అందమైన, అందమైన విషయం. ఇప్పుడు వరకు, నేను భావిస్తున్నాను కాబట్టి రెండు విషయాలు ఉన్నాయి సాధారణంగా విద్యార్థులు ఉన్నారు psets డీబగ్గింగ్ చేసేటప్పుడు అధికం చేయడం. ఒకటి, వారు గాని లో చేర్చండి printf () - కాబట్టి ప్రతి కొన్ని పంక్తులు, వారు ఒక printf () లో చేర్చండి - ఓహ్, ఈ వేరియబుల్ ఏమిటి? ఓహ్, ఈ వేరియబుల్ ఏమిటి ఇప్పుడు మరియు మీరు రకమైన అభివృద్ధి చూడండి మీ కోడ్ అది నడుస్తుంది. లేదా పిల్లలు ఏమి రెండవ పద్ధతి వారు కేవలం మొత్తం విషయం వ్రాసే ఆపై చివరిలో ఈ వంటి వెళ్ళండి. ఆశాజనక అది పనిచేస్తుంది. నేను మీరు హామీ, GDB ఉత్తమం ఆ రెండు పద్ధతులను కంటే. అవును. కాబట్టి ఈ మీ కొత్త స్నేహితుడి ఉంటుంది. అది ఒక అందమైన విషయం ఎందుకంటే ఆ దృష్టి డిస్ప్లేలు రెండు మీ కోడ్ చేస్తోంది ఒక నిర్దిష్ట సమయంలో అలాగే ఏ అన్ని మీ వేరియబుల్స్ మోస్తున్న ఉంటాయి, వారి విలువలు ఏమిటో వంటి, నిర్దిష్ట సమయంలో. మరియు ఈ విధంగా, మీరు నిజంగా చెయ్యవచ్చు మీ కోడ్ లో బ్రేక్ పాయింట్స్ సెట్. మీరు లైన్ ద్వారా లైన్ ద్వారా అమలు చేయవచ్చు. మరియు GDB కేవలం ఉంటుంది మీరు, మీరు కోసం ప్రదర్శించబడుతుంది అన్ని మీ వేరియబుల్స్ యొక్క వారు ఏమి చేస్తున్నారో ఉంటాయి ఏమి కోడ్ లో జరగబోతోంది. మరియు విధంగా, అంతే చాలా సులభంగా చూడడానికి ఏమి printf కనుట బదులుగా జరుగుతున్నది లేదా మీ ప్రకటనలు లిఖించడానికి. కనుక మేము తరువాత ఈ ఒక ఉదాహరణ చేస్తాను. కాబట్టి ఈ ఒక బిట్ వియుక్త తెలుస్తోంది. కంగారుపడవద్దు, మేము ఉదాహరణలు చేస్తాను. కాబట్టి ముఖ్యంగా, మూడు అతిపెద్ద, మీరు GDB లో అవసరం విధులు ఎక్కువగా ఉపయోగించే తరువాత, పైగా మెట్టు ఉంటాయి మరియు బటన్లు లోకి అడుగు. నేను తల వెళుతున్న అక్కడ, నిజానికి, ప్రస్తుతం. కాబట్టి మీరు అబ్బాయిలు అన్ని చూడగలరు లేదా నేను ఒక బిట్ లో జూమ్ ఉండాలి? తిరిగి లో, మీరు ఆ చూడగలరు? నేను జూమ్ ఉండాలి? కొంచెం? చల్లని, సరే. అక్కడ మేము వెళ్ళి. అలాగే. నేను, నా ఇక్కడ కలిగి అత్యాశ అమలు. మరియు మీరు అబ్బాయిలు చాలా వ్రాసారు ఆ ఫారాన్ని అయితే లూప్ లో అత్యాశ అలా ఒక సంపూర్ణ ఆమోదయోగ్యమైన మార్గం అది కేవలం ఉంది దీన్ని మరొక విధంగా దానిని మాడ్యులో లో విభజించారు. అప్పుడు మీరు ఎందుకంటే మీ విలువ ఆపై మీ మిగిలిన కలిగి. ఆపై మీరు కేవలం అన్ని కలిసి అది జోడించండి. నేను ఏమి చేస్తున్నానో తర్కం డజ్ ఇక్కడ అందరికీ తెలుస్తుంది, మేము ప్రారంభించే ముందు? అలాంటిదే? కూల్. గ్రేట్. ఇది ఒక అందమైన సెక్సీ ముక్క వార్తలు కోడ్ యొక్క, నేను చెబుతా. ఇలా నేను డేవిడ్ లో చెప్పారు ఒక కాలం తర్వాత, ఉపన్యాసాలిచ్చేందుకు, అన్ని కోడ్ చూసిన ప్రారంభిస్తాము బావుంది ఏదో. మరియు కొన్నిసార్లు మీరు అందమైన చూసినప్పుడు కోడ్, అది ఒక అద్భుతమైన అనుభూతి ఉంది. కనుక అయితే, ఈ కోడ్ చాలా చెప్తే అందమైన, అది సరిగా పనిచేయదు. కాబట్టి యొక్క ఈ check50 అమలు అనుమతిస్తాయి. 50 20-- oop తనిఖీ. 2? ఆ pset2 ఉంది? అవును. ఓహ్, pset1. అలాగే. కాబట్టి మేము check50 అమలు. మరియు మీరు అబ్బాయిలు ఇక్కడ చూడగలరు గా, ఇది కేసులు రెండు విఫలమైందని అన్నారు. మరియు మీరు కొన్ని, కోసం మీ సమస్య సెట్లు చేయడం కోర్సు యొక్క, అబ్బా, ఎందుకు పని చేయడం లేదు, వంటి మీరు ఉన్నాము. ఎందుకు అది కొన్ని కోసం పని విలువలు కానీ ఇతరులు కోసం? Well, GDB మీరు వ్యక్తిగా సహాయం అన్నారు ఎందుకో ఆ ఇన్పుట్లను పని చేయలేదు. అలాగే. కాబట్టి యొక్క, ఒకటి చూద్దాం నేను check50 విఫలమయ్యాడు జరిగినది తనిఖీలు 0.41 ఇన్పుట్ విలువ ఉంది. సరైన సమాధానం కాబట్టి మీరు పొందడానికి చేయాలి ఒక 4. కానీ బదులుగా నేను ముద్రించిన చేస్తున్నాను ఏమి సరికాదని 3-n, ఉంది. కాబట్టి కేవలం, కేవలం మానవీయంగా ఈ అమలు అనుమతిస్తాయి check50 పనిచేస్తుందని నిర్ధారించుకోండి. యొక్క ./greedy తెలియజేసేలా. అయ్యో, నేను అత్యాశ చేసుకోవాలి. అక్కడ మేము వెళ్ళి. ఇప్పుడు ./greedy. ఎంత విషాదం? యొక్క 0.41 తెలియజేసేలా. మరియు YEP, మేము ఇక్కడ చూడండి ఇది 3 ఔట్పుట్ ఆ సరైన సమాధానం, నిజానికి, 4 ఉండాలి. కాబట్టి యొక్క GDB ఎంటర్ తెలపండి మరియు మేము ఎలా చూడండి ఈ సమస్య ఫిక్సింగ్ గురించి వెళ్ళవచ్చు. మొదటి అడుగు కాబట్టి ఎల్లప్పుడూ మీ కోడ్ డీబగ్గింగ్ ఒక బ్రేక్ పాయింట్ సెట్, లేక పాయింట్ వద్ద మీరు కంప్యూటర్ లేదా కావలసిన డీబగ్గర్ చూడటం మొదలు. మీరు చేస్తే నిజంగా మీ సమస్య ఏమిటో తెలుసు, సాధారణంగా, సాధారణ విషయం మేము కావలసిన అలా ప్రధాన వద్ద మా బ్రేక్పాయింట్ని సెట్ ఉంటుంది. కాబట్టి మీరు అబ్బాయిలు ఈ చూడగలరు లేదో అక్కడే రెడ్ బటన్ YEP, నాకు సెట్ జరిగినది ఒక ప్రధాన విధి బ్రేక్పాయింట్. నేను ఆ క్లిక్ చేయండి. అప్పుడు నేను నా డీబగ్ బటన్ వరకు వెళ్ళవచ్చు. నేను ఆ మీటను నొక్కండి. నేను నన్ను తిరిగి దూరంగా లెట్. అక్కడ మేము వెళ్ళి. కాబట్టి మేము, ఇక్కడ, కుడి ఒక పానెల్ ఉంటుంది. నేను తిరిగి, అబ్బాయిలు క్షమించండి, మీరు నిజంగా బాగా కనిపించడం లేదు. కానీ తప్పనిసరిగా, అన్ని ఈ కుడివైపు చేస్తోంది రెండు హైలైట్ పర్యవేక్షించడం ఉంది కోడ్ యొక్క వాక్యం ఇది లైన్, కంప్యూటర్ ప్రస్తుతం అమలవుతున్న, అలాగే మీ వేరియబుల్స్ యొక్క అన్ని ఇక్కడ డౌన్. కాబట్టి మీరు సెంట్లు, నాణేలు, n పొందారు, అన్ని వివిధ విషయాలను ప్రకటించింది ఈ సమయంలో. కంగారుపడవద్దు, ఎందుకంటే మేము నిజంగా ఇంకా ఏ వేరియబుల్స్ వాటిని initialized. మీ కంప్యూటర్ లో సో మీ కంప్యూటర్ కేవలం చూసిన, ఓహ్, 32767 గత ఉపయోగించే ఫంక్షన్ ఉంది నా కంప్యూటర్ లో ఆ స్మృతి స్థలం. సెంట్లు ప్రస్తుతం ఉన్న కాబట్టి ఆ. కానీ ఆ సంఖ్య ఒకసారి మీరు, కోడ్ అమలు ఇది initialized మారాలి. కాబట్టి యొక్క, లైన్ ద్వారా వెళ్ళడానికి వీలు లైన్, వాట్ ఇక్కడ జరగబోతోంది. అలాగే. ఇక్కడ సో మూడు ఉన్నాయి నేను వివరించారు బటన్లు. మీరు, ప్లే, లేదా రన్ ఫంక్షన్ కలిగి బటన్, మీరు బటన్ అతిక్రమించి కలిగి మరియు మీరు కూడా బటన్ లోకి అడుగు కలిగి. మరియు ముఖ్యంగా, ఈ మూడు భాగాల వాటిని కేవలం మీ కోడ్ ద్వారా మరియు వివిధ పనులను. కాబట్టి సాధారణంగా, మీరు డీబగ్గింగ్ చేసేటప్పుడు, మేము కేవలం ప్లే నొక్కండి వద్దు, ప్లే కేవలం అమలు ఎందుకంటే అది చివర మీ కోడ్. ఆపై మీరు నిజంగా కాదు రెడీ తెలిసినవి మీ సమస్య మీరు బహుళ బ్రేక్ పాయింట్స్ సెట్ తప్ప ఉంది. మీరు బహుళ బ్రేక్ పాయింట్స్ సెట్ చేస్తే, అది కేవలం స్వయంచాలకంగా రెడీ ఒక బ్రేక్పాయింట్ నుండి అమలు, తదుపరి, తదుపరి. కానీ ఈ విషయంలో మేము చేసిన కేవలం ఒక, మేము ఎందుకంటే మా మార్గం పని అనుకుంటున్నారా పైనుంచి క్రిందికి నుండి. కాబట్టి మేము ఆ బటన్ విస్మరించండి చూడాలని ప్రస్తుతం ఈ కార్యక్రమ అవసరాల కోసం జరిగింది. ఫంక్షన్ దశ పూర్తయింది కాబట్టి కేవలం ప్రతి వాక్యం పైగా దశలు మరియు మీరు చెబుతుంది ఏమి కంప్యూటర్ చేస్తోంది. ఫంక్షన్ దశ వెళుతుంది అసలు ఫంక్షన్ ఆ కోడ్ మీ లైన్ ఉంది. ఉదాహరణకు, printf () వంటి, ఆ కుడి, ఒక ఫంక్షన్ ఉంది? నేను భౌతికంగా అడుగు కోరుకుంటే printf () ఫంక్షన్ లో, నేను నిజానికి ముక్క కానుందని printf () రాసిన మరియు చూడండి అక్కడ కోడ్ అక్కడ ఏం జరగబోతోంది. కానీ సాధారణంగా, మేము ఊహించుకోవటం మేము మీరు ఇచ్చే కోడ్ పనిచేస్తుంది. మేము () పని ఉంది printf భావించవచ్చును. మేము GetInt () పని అని అనుకునేది. కాబట్టి ఎటువంటి అవసరం ఉంది ఆ విధులు లోకి అడుగు. కానీ విధులు అక్కడ ఉంటే మీరే వ్రాసే మీరు తనిఖీ కావలసిన జరగబోతోంది ఏమి, మీరు దశల కావాలో ఆ ఫంక్షన్. కాబట్టి ఇప్పుడు మేము కేవలం చూడాలని కోడ్ యొక్క ఈ భాగం అతిక్రమించి. కాబట్టి యొక్క చూసేలా. ఓహ్, ముద్రణ, "ఓహ్ హై, ఎలా తరలిస్తుండగా ఇవ్వాల్సిన? " మేము పట్టించుకోను. మేము ఆ పని తెలుసు, కాబట్టి మేము అది పైగా అడుగు. కాబట్టి n మా ఫ్లోట్ ఇది ఆ మేము initialized-- చేసిన లేదా declared-- ఎగువన అప్, మేము ఇప్పుడు ఉన్నాము GetFloat ఆ సమం (). కాబట్టి యొక్క ఆ అతిక్రమించి తెలియజేయండి. మరియు మేము వద్ద చూడండి దిగువన ఇక్కడ, కార్యక్రమం క్రింది ఇన్పుట్ నాకు ప్రాంప్ట్ ఉంది. ఇన్పుట్ యొక్క మేము కావలసిన విలువ వీలు 0.41 ఉంది, ఇక్కడ పరీక్షించడానికి. గ్రేట్. కాబట్టి ఇప్పుడు n-- మీరు అబ్బాయిలు చూస్తారు ఇక్కడ, అడుగున వద్ద అంతే stored-- మేము ఎందుకంటే ఇంకా గుండ్రంగా లేదు, అంతే ఈ వంటి దిగ్గజం నిల్వ 0,4099999996 అని ఫ్లోట్, దగ్గరగా ఉంది మా ప్రయోజనాల, ప్రస్తుతం, 0.41. మరియు తర్వాత మేము, తర్వాత చూస్తారు మేము కార్యక్రమం పైన అడుగు పెట్టటం కొనసాగుతుంది, ఇక్కడ తర్వాత, n మారింది గుండ్రని మరియు సెంట్లు 41 మారింది. గ్రేట్. కాబట్టి మేము మా చుట్టుముట్టే పని తెలుసు. మేము కలిగి తెలుసు సెంట్లు సరైన సంఖ్య, కాబట్టి మేము ఆ తెలుసు నిజంగా సమస్య. కాబట్టి మేము పునాది కొనసాగుతుంది ఈ కార్యక్రమం లో. మేము ఇక్కడ వెళ్ళండి. కాబట్టి కోడ్ ఈ లైన్ తర్వాత, మేము మేము ఎన్ని వంతులు తెలిసిన ఉండాలి. మేము అతిక్రమించి. మరియు మీరు మేము, నిజానికి, do ఒక చూడండి క్వార్టర్ మేము 25 వ్యవకలనం చేసిన ఎందుకంటే 41 మా ప్రారంభ విలువ నుండి. మరియు మేము మా సెంట్ల 16 మిగిలింది. అందరూ ఎలా అర్థం లేదు కార్యక్రమం ద్వారా పునాది ఉంది మరియు ఎందుకు సెంట్లు ఇప్పుడు 16 మారింది మరియు ఎందుకు, ఇప్పుడు, నాణేలను 1 మారింది? ప్రతి ఒక్కరూ ఆ తర్కం అనుసరిస్తున్నారు? కూల్. ఈ పాయింట్ కాబట్టి కార్యక్రమం యొక్క పని, కుడి? మేము అది ఖచ్చితంగా చేయుచున్నాడు తెలుసు మేము దానికి కావలసిన ఏమి. మరియు మేము నిజంగా జరగలేదు ఓహ్, బయటకు ప్రింట్, ఏది ఈ సమయంలో సెంట్లు ఉంది ఈ సమయంలో నాణేలు ఏమిటి. మేము ప్రోగ్రామ్ ద్వారా వెళ్ళి కొనసాగిస్తారు. పైగా దశ. కూల్. మేము డైమ్స్ వెళ్ళి. గ్రేట్. మేము అది తీసుకున్న చేసే చూడండి ఒక చవుకయైన కోసం $ 0.10 ఆఫ్. మరియు ఇప్పుడు మేము రెండు నాణేలు కలిగి. సరైన అని. మేము నాణేలు వెళ్ళి మరియు మేము చూడండి మేము సెంట్లు పైగా వదిలి పొందారు. అయ్యో, ఆ వింత ఉంది. ఇక్కడ కార్యక్రమం అప్, నేను చేయాలో నా నాణేలు తీసివేయటం చేశారు. బహుశా నేను కాదు ఆ లైన్ కుడి చేయడం. మరియు అయ్యో, మీరు చూడగలరు ఇక్కడ, మేము తెలుసు ఎందుకంటే మేము పునాది అని పంక్తులు 32 మరియు 33 ద్వారా ఆ పేరు మా కార్యక్రమం సరిగ్గా వేరియబుల్స్ పరిగెత్తాడు. కాబట్టి మేము చూడవచ్చు మరియు OH, చూడగలరు, నేను ఇక్కడ సెంట్లు తీసివేయడం చేస్తున్నాను, కానీ నేను నిజానికి కాదు నా నాణెం విలువ జోడించడం. నేను సెంట్లు జోడించడం చేస్తున్నాను. నేను జోడించండి వద్దు సెంట్లు, నేను నాణేలు జోడించండి అనుకుంటున్నారా. కాబట్టి మేము నాణేలు ఆ మార్చడానికి ఉంటే, మేము ఒక పని ప్రోగ్రామ్ పొందారు. నేను check50 అమలు చెయ్యవచ్చు. మీరు కేవలం GDB కుడి బయటకు చేయవచ్చు ఇక్కడ మరియు తరువాత మళ్ళీ check50 అమలు. నేను దీన్ని కేవలం కాలేదు. నేను అత్యాశ చేసుకోవాలి. 0.41. మరియు ఇక్కడ, ఇది ముద్రణ యొక్క కుడి సమాధానం. మీరు అబ్బాయిలు చూడగలరు కాబట్టి, GDB ఒక నిజంగా శక్తివంతమైన సాధనం మేము చాలా కోడ్ ఉన్నప్పుడు కోసం జరగబోతోంది మరియు చాలా వేరియబుల్స్ ఇది, మాకు కష్టం అని ఒక మానవ, ట్రాక్. GDB లో కంప్యూటర్, డీబగ్గర్, సామర్థ్యం ఉంది ప్రతిదీ ట్రాక్. నేను బహుశా Visionaire లో, మీరు అబ్బాయిలు, తెలిసిన కొన్ని సెగ్మెంటేషన్ ఫాల్ట్స్ హిట్ ఉండవచ్చు మీరు నడుస్తున్న ఎందుకంటే మీ శ్రేణి యొక్క సరిహద్దులు బయటకు. సీజర్ యొక్క ఉదాహరణ, ఆ సరిగ్గా నేను ఇక్కడ ఏమి అమలు చేసిన. సో నేను తనిఖీ మర్చిపోయాను ఏం జరుగుతుంది నేను రెండు ఆదేశ పంక్తి వాదనలు లేదు. నేను ఆ చెక్ పెట్టలేదు. నేను Debug-- అమలు చేస్తే నేను సెట్ నా బ్రేక్పాయింట్ కుడి అక్కడ. నేను డీబగ్ అమలు. అలాగే. అవును. కాబట్టి నిజంగా, GDB చేయాలో అక్కడ నాకు చెప్పారు అక్కడ ఒక విభజన లోపంగా ఉంది. నేను ఏమి జరుగుతోందో తెలియదు అక్కడే, కానీ నేను పరిగెడుతున్నప్పుడు ఇది పని. మీరు ద్వారా లైన్స్ ఆఫ్ కోడ్ అమలు చేసినప్పుడు మరియు GDB కేవలం అకస్మాత్తుగా, మీరు విడిచి ఉండవచ్చు పైకి వెళ్ళి ఎరుపు లోపం ఉంది ఏమి చూడండి. ఇది, హే, మీరు చెబుతాడని విభజన లోపంగా వచ్చింది, మీరు ప్రాప్యత చేయడానికి ప్రయత్నించిన అర్థం ఉనికిలో లేదని వ్యూహంలో స్పేస్. అవును. తదుపరి సమస్య కాబట్టి ఈ వారం సెట్, మీరు అబ్బాయిలు బహుశా చాలా ఉంటుంది వేరియబుల్స్ చుట్టూ తేలియాడే. మీరు తప్పకుండా వెళ్ళడం లేదు చేస్తున్నాం ఏమి వారు అన్ని ఒక నిర్దిష్ట సమయంలో అర్థం. కాబట్టి GDB నిజంగా ఇందుకు మీకు సహాయం చేస్తుంది వారు అన్ని సమం ఏమిటో మరియు దృష్టి ఆ చూసే. ఎవరైనా ఎలా అయోమయం ఏ పని చేశారు? కూల్. అయితే సరే. కాబట్టి ఆ తర్వాత, మనం కుడి ప్రవేశిస్తాడు వెళుతున్న లోనికి వివిధ నాలుగు ఉన్నాయి ఈ వారం రకాల రకాలు. ఎలా మీరు అనేక మొదటి అన్ని, మేము ముందు, pset3 మొత్తం స్పెక్ చదివాను? అలాగే. నేను మీరు అబ్బాయిలు గర్వపడింది ఉన్నాను. సగం ఆ తరగతి, వంటిది ఇది చివరిసారి కంటే గణనీయంగా ఎక్కువగా ఉంది. కాబట్టి ఆ గొప్ప ఉన్నప్పుడు ఎందుకంటే మేము కంటెంట్ గురించి మాట్లాడటానికి ఉపన్యాసం లేదా క్షమించాలి లో, విభాగంలో నేను ఇష్టం ఆ చాలా సంబంధం తిరిగి pset ఏమి మరియు మీరు మీరు ఎలా మీ pset లో అమలు. మీరు కలిగి వస్తాయి కనుక స్పెక్ చదవడం, అది చేస్తాము మీరు అర్థం కోసం చాలా సులభంగా ఉంటుంది నేను చెప్పినప్పుడు గురించి మాట్లాడటం చేస్తున్నాను ఏమి, హే ఓహ్, ఈ ఒక నిజంగా కావచ్చు ఈ విధమైన అమలు మంచి ప్రదేశం. చదివాను ఎవరు మీరు యొక్క ఆ సో మీ pset భాగంగా తెలుసు వివరణలు మీరు చూడాలని విధమైన ఒక రకం వ్రాయండి. కాబట్టి ఈ చాలా సహాయకారిగా ఉండవచ్చు మీరు చాలా నేడు. కాబట్టి మేము తో మొదలు చేస్తాము, ముఖ్యంగా, అత్యంత సాధారణ రకం యొక్క విధమైన, ఎంపిక విధమైన. కోసం ప్రత్యేకం అల్గోరిథం మేము ఈ గురించి వెళ్ళాలి ఎలా is-- డేవిడ్ అన్ని ఈ సాగింది ఉపన్యాసం, నేను త్వరగా కదులుతుందని చేస్తాము ఇక్కడ మీరు తప్పనిసరిగా ఉంది విలువలు యొక్క వ్యూహం కలిగి. ఆపై మీరు కనుగొనేందుకు చిన్న క్రమబద్ధీకరించనిది విలువ మరియు మీరు ఆ విలువ మార్పిడి మొదటి క్రమబద్ధీకరించనిది విలువ. ఆపై మీరు కేవలం పునరావృత మీ జాబితా యొక్క మిగిలిన. మరియు ఇక్కడ ఒక దృశ్య వివరణ ఉంది ఆ పని చేస్తుందని ఎలా. మేము చేస్తే ఉదాహరణకు, ప్రారంభం అయిదు అంశాల వ్యూహం, ఇండెక్స్ తో 4 0, 3, 5, 2, 6, మరియు 4 విలువలు కాబట్టి ప్రస్తుతం శ్రేణి ఉంచుతారు, మేము కేవలం ఊహించుకోవటం చూడాలని వారు అన్ని క్రమబద్ధీకరించనిది అని మేము లేకపోతే పరీక్షలు లేదు ఎందుకంటే. సో ఎలా ఎంపిక విధమైన చేస్తాను పని అది మొదటి చేస్తాను ఉంది మొత్తం ద్వారా అమలు క్రమబద్ధీకరించనిది శ్రేణి యొక్క. ఇది చిన్న విలువ పిక్ ఉంటుంది. ఈ సందర్భంలో, 3, కుడి ఇప్పుడు కంటే చిన్నది. ఇది 5 పొందుతాడు. Nope, 5 than-- ఎక్కువ కాదు లేదా క్షమించాలి, 3 than-- తక్కువ కాదు. కాబట్టి కనీస విలువ ఇప్పటికీ 3. ఆపై మీరు 2 పొందవచ్చు. ఓహ్, చూస్తాడు కంప్యూటర్, 2 3 కంటే తక్కువ. 2 ఇప్పుడు కనీస విలువ ఉండాలి. అందువలన, మొదటి విలువ 2 మార్పిడులు. కాబట్టి ఒక పాస్ తరువాత, మేము నిజానికి చూస్తారు 2 మరియు 3 మార్చుకున్నారు ఉంటాయి. మరియు మేము చేస్తున్న కొనసాగించడానికి వెళుతున్న మళ్ళీ ఈ శ్రేణి యొక్క మిగిలిన. కాబట్టి మేము కేవలం ద్వారా అమలు చూడాలని శ్రేణి యొక్క చివరి నాలుగు సూచికలు. మేము 3 అని చూస్తారు తదుపరి కనీస విలువ. కాబట్టి మేము 4 స్వాప్ వెళుతున్న. మరియు తర్వాత మేము ఉంచడానికి వెళుతున్న చివరికి, వరకు ద్వారా అమలు, మీరు ఒక క్రమబద్ధీకరించబడతాయి శ్రేణి దీనిలో 2, 3, 4, 5, మరియు 6 అన్ని క్రమబద్ధీకరించబడతాయి. ప్రతి ఒక్కరూ తర్కం అర్థం ఉందా ఎంపిక విధమైన ఎలా పనిచేస్తుంది? మీరు కేవలం విధమైన కలిగి ఒక కనీస విలువ యొక్క. మీరు ఏ జాడని ఉంచుతున్నారు. మీరు కనుగొనడానికి చేసినప్పుడు, మీరు వీటిని మార్పిడి శ్రేణి లో మొదటి విలువ లేదా, మొదటి విలువ యెరే నందలి తదుపరి విలువ. కూల్. కాబట్టి మీరు అబ్బాయిలు రకమైన క్లుప్త సంగ్రహావలోకనం నుండి చూసిన, మేము ఈ pseudocode చూడాలని. సో తిరిగి లో మీరు అబ్బాయిలు అనుకుంటే ఒక టేబుల్ వద్ద ఒక సమూహం, ప్రతి ఒక్కరూ రూపం కొద్దిగా భాగస్వామి ఏర్పడతాయి, నేను వెళుతున్నాను మీరు మూడు నిమిషాల వంటి అబ్బాయిలు ఇవ్వాలని కేవలం ద్వారా మాట్లాడు తర్కం, ఇంగ్లీష్ లో, మేము అమలు చేయగలరు ఎలా pseudocode ఒక ఎంపిక విధమైన రాయడానికి. మరియు క్యాండీ ఉంది. పైకి వచ్చి మిఠాయి పొందుటకు దయచేసి. మీరు తిరిగి లో ఉన్నాము మరియు మీరు అనుకుంటే మిఠాయి, నేను మీరు మిఠాయి విసిరివేయగలరు. అసలైన, మీరు చేసిన చల్లని చేయండి. క్షమించు. అలాగే. మేము, కోరుకుంటున్నారో చేస్తే ఒక తరగతి, వ్రాయడం pseudocode ఒక చేరుకోవటానికి ఎలా కోసం ఈ సమస్య కేవలం సంకోచించకండి. నేను చుట్టూ మరియు చేస్తాము, క్రమంలో, సమూహాలు అడగండి తదుపరి లైన్ కోసం మేము ఏమి చేయడం చేయాలి. మీరు అబ్బాయిలు మొదలు అనుకుంటే కాబట్టి ఆఫ్, మొదటి విషయం ఏమిటి మీరు ప్రయత్నిస్తున్నారు చేసినప్పుడు చేయడానికి ఈ కార్యక్రమం పరిష్కరించడానికి ఒక మార్గం అమలు ఎన్నుకోబడి జాబితా క్రమం? కేవలం మేము ఊహించుకోవటం లెట్ వ్యూహం, అన్ని హక్కు? ప్రేక్షకులు: మీరు కొన్ని సృష్టించడానికి కావలసిన విధమైన [వినబడని] మీరు ఆ మీ వ్యూహరచనలు ద్వారా నడుస్తున్న. అండీ పెంగ్: కుడి. మీరు iterate చూడాలని ప్రతి స్పేస్ ద్వారా, కుడి? సో, గొప్ప. మీరు అబ్బాయిలు నన్ను ఇవ్వాలని ఉంటే తదుపరి వెనుక, యేః లైన్. ప్రేక్షకులు: వాటిని తనిఖీ అన్ని అతిచిన్న కోసం. అండీ పెంగ్: అక్కడ మేము వెళ్ళి. కాబట్టి మేము ద్వారా వెళ్ళి చెక్ అనుకుంటున్నారా కనీస విలువ కుడి, ఏమి చూడండి? నేను ఆ సంక్షిప్తంగా వెళుతున్న "min." మీరు అబ్బాయిలు తర్వాత ఏమి అనుకుంటున్నారు మీరు కనీస విలువ అనిపిస్తే? ప్రేక్షకులు: [వినబడని] అండీ పెంగ్: సో మీరు కావలసిన చూడాలని ఆ శ్రేణి యొక్క మొదటి అది మారడం, కుడి? నేను చెప్పటానికి వెళుతున్న ప్రారంభం ఉంది. అయితే సరే. కాబట్టి ఇప్పుడు మీరు మొదటి మార్చుకున్నారు చేసిన ఒకటి, మీరు ఆ తర్వాత చెయ్యాలనుకుంటున్నారు? కాబట్టి ఇప్పుడు మేము తెలుసు ఇక్కడ ఈ ఒక కుడి, చిన్న విలువ ఉండాలి? అప్పుడు మీరు ఒక అదనపు మిగిలిన క్రమబద్ధీకరించనిది వార్తలు శ్రేణి యొక్క. సో మీరు ఉంటే, ఇక్కడ మీరు ఏమి అబ్బాయిలు నన్ను తదుపరి లైన్ ఇవ్వాలని? ప్రేక్షకులు: సో అప్పుడు మీరు iterate మీరు యెరే యొక్క మిగిలిన కాలమంతా. అండీ పెంగ్: అవును. కాబట్టి ద్వారా iterating లేదు ఏమి రకమైన మేము బహుశా అవసరం తేటతెల్లమవుతుంది? ఏ రకం of-- ప్రేక్షకులు: ఓహ్, ఒక అదనపు వేరియబుల్? అండీ పెంగ్: బహుశా లూప్ మరొక, కుడి? కాబట్టి మేము బహుశా కావలసిన చూడాలని through-- గొప్ప iterate కు. ఆపై మీరు తిరిగి వెళ్ళి చేయబోతున్నామని మరియు బహుశా మళ్ళీ కనీస తనిఖీ, కుడి? మరియు మీరు పునరావృత ఉంచడానికి వెళుతున్న ఈ ఉచ్చులు ఎందుకంటే కేవలం వెళుతున్న కుడి, నడుస్తున్న ఉంచడానికి? కాబట్టి మీరు అబ్బాయిలు, మేము గమనిస్తే కేవలం ఒక సాధారణ pseudocode కలిగి మేము మీరు ఎలా ఈ కార్యక్రమం చూడండి. ఇక్కడ ఈ iterate, మనమేం సాధారణంగా మా కోడ్ వ్రాయడానికి అవసరం మేము ఒక ద్వారా iterate మీరు అనుకుంటే నిర్మాణం శ్రేణి, ఏ రకం? నేను క్రిస్టబుల్ అనుకుంటున్నాను ఇప్పటికే ముందు చెప్పారు. ప్రేక్షకులు: లూప్ ఒక. అండీ పెంగ్: లూప్ ఒక? సరిగ్గా. కాబట్టి ఈ బహుశా ఉంది ఒక లూప్ చేస్తాడు. చెప్పేందుకు వెళుతున్న ఇక్కడ ఒక చెక్ ఏమిటి? సాధారణంగా, మీరు తనిఖీ అనుకుంటే ఏదో ఏదో ఉంది ఉంటే else-- ప్రేక్షకులు: ఉంటే. అండీ పెంగ్: యాన్ ఉంటే, కుడి? ఇక్కడ మార్పిడి ఆపై, మేము చేస్తాము తరువాత వెళ్ళి డేవిడ్ ఎందుకంటే అలాగే ఉపన్యాసం ఆ సాగింది. ఆపై రెండో iterate implies-- ప్రేక్షకులు: లూప్ మరో. అండీ పెంగ్: సరిగ్గా, లూప్ --another. మేము చూస్తున్న చేస్తే సరిగ్గా ఈ, మేము మేము బహుశా చేస్తున్న చూడగలరు ఒక లూప్ యున్న అవసరం వెళ్తున్నారు అక్కడ ఒక నియత ప్రకటన తో ఆపై కోడ్ యొక్క ఒక వాస్తవ భాగం ఉంది అని విలువలు స్వాప్ వెళుతున్న. సో నేను సాధారణంగా వ్రాయలేదు ఇక్కడ ఒక pseudocode కోడ్. మరియు తర్వాత మేము నిజానికి చూడాలని భౌతికంగా, ఒక తరగతి, ఈ రోజు అమలు చేసేందుకు ప్రయత్నించండి. యొక్క ఈ IDE లోకి వెళదాం. అయ్యో. ఎందుకు not-- ఇది ఉంది. అలాగే. క్షమించండి, నాకు ఒక బిట్ మరింత జూమ్ ప్రయత్నించండి తెలియజేయండి. అక్కడ మేము వెళ్ళి. నేను ఇక్కడ చేస్తున్నదాన్ని అన్ని నేను సృష్టించిన చేసిన అనే కార్యక్రమం "ఎంపిక / sort.c." నేను తొమ్మిది యొక్క వ్యూహం సృష్టించాను విలువలు, 4, 8, 2, 1, 6, 9, 7, 5, 3. ప్రస్తుతం, మీరు చెయ్యగలరు గా వారు క్రమం ఉంటాయి, చూడండి. n సంఖ్య అవతరిస్తుంది ఆ మీకు విలువలు మొత్తాన్ని చెబుతుంది మీరు మీ శ్రేణి కలిగి. ఈ సందర్భంలో, మేము తొమ్మిది విలువలు కలిగి ఉంటాయి. మరియు నేను ఇక్కడ లూప్ ఒక పొందారు ఆ క్రమబద్ధీకరించనిది శ్రేణి ముద్రిస్తుంది. మరియు చివరిలో, నేను కూడా ఒక పొందారు కేవలం మళ్లీ దాన్ని ముద్రిస్తుంది లూప్. కాబట్టి సిద్ధాంతపరంగా, ఈ కార్యక్రమం ఉంటే చివరిలో, సరిగ్గా పని, మీరు లూప్ ఒక ముద్రిత చూస్తారు దీనిలో 1, 2, 3, 4, 5, 6, 7, 8, 9 క్రమంలో అన్ని సరిగ్గా ఉంటాయి. కాబట్టి మేము ఇక్కడ మా pseudocode పొందారు. నేను ఉన్నాను ఆలోచన ఎవరైనా అనుకుంటుంది స్వచ్ఛందంగా గోవా వెళ్ళడానికి వెళ్తున్నారు ఉంటే ఏమి టైప్ సరిగ్గా చెప్పు మేము మొదటి, కేవలం iterate మీరు ఈ శ్రేణి యొక్క ప్రారంభంలో ద్వారా? నేను ఉన్నాను కోడ్ లైన్ ఏమిటి బహుశా ఇక్కడ అవసరం వెళ్తున్నారు? ప్రేక్షకులు: [వినబడని] అండీ పెంగ్: అవును, అనుభూతి ఉచిత ఆలోచన క్షమించండి, మీరు మీరే అనుభూతి నిలబడటానికి లేదు మీ వాయిస్ ఒక బిట్ పెంచడానికి ఉచితం. ప్రేక్షకులు: నేను Int సమానం కోసం 0 ఉంది అండీ పెంగ్: అవును, మంచి. ప్రేక్షకులు: నేను శ్రేణి పొడవు కంటే తక్కువగా ఉంటుంది. అండీ పెంగ్: సో ఉంచడానికి ఇక్కడ మనస్సు మేము ఎందుకంటే ఒక ఫంక్షన్ లేని మాకు వ్యూహం యొక్క పొడవు చెబుతుంది, మేము ఇప్పటికే ఒక కలిగి ఆ నిల్వ విలువ. కుడి? మరో విషయం ఉంచడానికి వ్యూహంలో మనసు లో తొమ్మిది విలువలు, సూచికలు ఏవి? లెట్ యొక్క ఈ శ్రేణి 0 to 3 అని. మీరు గత ఆ చూడండి సూచిక వాస్తవానికి 3. ఇది ఉంది అయినప్పటికీ, 4 కాదు శ్రేణి లో నాలుగు విలువలను. ఇక్కడ అలా, మేము చాలా జాగ్రత్తగా ఉండాలి పొడవు కోసం ఏమి మా పరిస్థితి అవతరిస్తుంది. ప్రేక్షకులు: ఇది n మైనస్ 1 కాదు? అండీ పెంగ్: ఇది జరగబోతోంది సరిగ్గా n మైనస్ 1. ఆ సమంజసం, వై డస్ అది n వార్తలు మైనస్ 1, ప్రతి ఒక్కరూ? శ్రేణుల సున్నా-సూచిక ఎందుకంటే ఇది. వారు 0 వద్ద మొదలు మరియు 1 n మైనస్ వరకు అమలు. అవును, అది ఒక బిట్ గమ్మత్తైన. అలాగే. మరియు then-- ప్రేక్షకులు: Isnt'1 ఆ ఇప్పటికే అయితే జాగ్రత్తగా తీసుకున్న, కేవలం కంటే ఎక్కువ లేదా తక్కువ "చెప్పడం లేదు ద్వారా సమాన కంటే తక్కువ "మరియు కేవలం చెప్పడం" ఎలా? " అండీ పెంగ్: ఆ వార్తలు నిజంగా మంచి ప్రశ్న. కాబట్టి, అవును. కానీ, మేము మార్గం అని తనిఖీ కుడి అమలు మీరు రెండు విలువలు పోల్చి చూడాలి. కాబట్టి మీరు నిజంగా కావలసిన "కు" ఖాళీ వదిలి. మీరు పోల్చి ఉంటే ఎందుకంటే ఈ ఒక, మీరు వెళ్ళడం లేదు చేస్తున్నాం దాని తరువాత ఏదైనా కలిగి కుడి, పోల్చడానికి? అవును. నేను ++. యొక్క మా బ్రాకెట్లలో జోడించడానికి అనుమతిస్తుంది. వై. గ్రేట్. కాబట్టి మేము ప్రారంభంలో కలిగి మా బాహ్య లూప్. కాబట్టి ఇప్పుడు మేము బహుశా కావలసిన ఉంచుకోవడానికి ఒక వేరియబుల్ సృష్టించడానికి చిన్న విలువ ట్రాక్, కుడి? ఎవరైనా నాకు ఇవ్వాలనుకున్న లేదు అలా అని కోడ్ యొక్క లైన్? మేము వెళుతున్న ఉంటే మేము ఏమి చేయాలి ఏదో నిల్వ అనుకుంటున్నారా? కుడి. ఆ బహుశా ఒక మంచి పేరు "తాత్కాలిక" ఉండబోతుంది అని పూర్తిగా works-- బహుశా మరింత సముచితంగా ఉంటుంది అనే, మేము చిన్న విలువ అనుకుంటే ప్రేక్షకులు: min. అండీ పెంగ్: min, అక్కడ మేము వెళ్ళి. min మంచి ఉంటుంది. మరియు ఇక్కడ, మేము ఏమి దాన్ని ప్రారంభించడం అనుకుంటున్నారా? ఈ ఒక బిట్ గమ్మత్తైన. ఎందుకంటే ప్రస్తుతం వద్ద ఈ శ్రేణి యొక్క ప్రారంభించి, మీరు కుడి, ఏదైనా చూశారు లేదు? స్వయంచాలకంగా సో వాట్, ఉంటే మేము కేవలం నేను 0 సమానం లో ఉన్నారు మేము ప్రారంభించడం కావలసిన ఏమి మా మొదటి కనీస విలువ? ప్రేక్షకులు: నేను. అండీ పెంగ్: i, సరిగ్గా. క్రిస్టబుల్, ఎందుకు మేము అనుకుంటున్నారు నేను దానిని ప్రారంభించడం? ప్రేక్షకులు: బాగా, ఎందుకంటే మనం 0 తో మొదలు పెడుతున్నారు. మేము పోల్చడానికి ఏమీ కలిగి ఎందుకంటే కాబట్టి అది కనీస 0 మాదిరిగా ముగించారు పరిశీలించుకోండి. అండీ పెంగ్: ఖచ్చితంగా. సో ఆమె ఖచ్చితంగా కుడి ఉంది. మేము నిజానికి ఎందుకంటే ఇంకా ఏదైనా చూశారు మేము మా కనీస విలువ ఏమిటి తెలియదు. మేము కేవలం అది ప్రారంభించడం కావలసిన నేను ఏ ప్రస్తుతం ఇక్కడే ఉంది. మరియు మేము కొనసాగుతుంది వంటి ఈ శ్రేణి క్రిందికి తరలించడానికి, మేము ప్రతి తో, ఆ చూస్తారు అదనపు పాస్ నేను ఇంక్రిమెంట్. కాబట్టి ఆ సమయంలో, నేను బహుశా అన్నారు కనీస ఉండాలనుకుంటున్నాను, సంసార చేస్తాడు ఎందుకంటే క్రమబద్ధీకరించనిది శ్రేణి ప్రారంభంలో ఉంది. కూల్. కాబట్టి ఇప్పుడు మేము జోడించాలనుకుంటే ఇక్కడ లూప్ ఆ ద్వారా iterate వెళుతున్న క్రమబద్ధీకరించనిది, లేదా ఈ శ్రేణి యొక్క మిగిలిన. ఎవరైనా నాకు ఒక కల్పించేందుకు అనుకుంటుంది అలా అని కోడ్ యొక్క లైన్? Hint-- మేము ఇక్కడ ఏమి డౌన్ చేయాలి? ఏం లూప్ ఈ లో వెళ్ళడానికి జరగబోతోంది? అవును. ప్రేక్షకులు: సో మేము కావలసిన ఇష్టం వేరే పూర్ణాంక, మేము మిగిలిన ద్వారా అమలు చేస్తున్నారు ఎందుకంటే బదులుగా నేను శ్రేణి, కాబట్టి బహుశా j. అండీ పెంగ్: అవును, j నాకు మంచిదనిపించింది. సమానం? ప్రేక్షకులు: సో ఎందుకంటే, నేను ప్లస్ 1 చేస్తాం మీరు తదుపరి విలువ వద్ద మొదలు పెడుతున్నారు. ఆపై మరలా end--, జే ఉంది n మైనస్ 1, తరువాత j ++ కంటే తక్కువ. అండీ పెంగ్: గ్రేట్. ఆపై ఇక్కడ, మేము చూడాలని మా పరిస్థితి ఏర్పడితే ఉంటే చూడటానికి తనిఖీ, కుడి? మీరు కావలసిన ఎందుకంటే కనీస విలువ మార్చడానికి ఇది కంటే నిజానికి చిన్న ఉంటే ఏమి మీరు కుడి, పోల్చారు చేస్తున్నారు? కాబట్టి మనం ఇక్కడ ఇస్తున్నాయి? చూడటానికి తనిఖీ. ప్రకటన రకం మేము బహుశా వెళ్తున్నారు టి ఉంటే ఉపయోగించడానికి కావలసిన మేము ఏదో చెక్ అనుకుంటున్నారా? ప్రేక్షకులు: ఒక ప్రకటనలో ఉంటే. అండీ పెంగ్: యాన్ ఉంటే ప్రకటన. కాబట్టి if-- కానుంది ఏమి మేము లోపల కావలసిన పరిస్థితి మా ఉంటే ప్రకటన? ప్రేక్షకులు: ఉంటే j విలువ i మైనస్ మైనస్ విలువ కంటే తక్కువ అండీ పెంగ్: ఖచ్చితంగా. కాబట్టి if-- కాబట్టి ఈ శ్రేణి "శ్రేణి" అని పిలుస్తారు. గ్రేట్. ఆ ఏమిటి శ్రేణి చేస్తే? మళ్ళీ ఆ సే. ప్రేక్షకులు: శ్రేణి-j కంటే తక్కువ ఉంటే శ్రేణి-i, అప్పుడు మేము min మార్చుకోవచ్చు. కాబట్టి min j ఉంటుంది. అండీ పెంగ్: ఆ సమంజసం లేదు? అలాగే. ఇప్పుడు డౌన్ ఇక్కడ, మేము నిజానికి కుడి, స్వాప్ అమలు అనుకుంటున్నారా? కాబట్టి, ఆ ఉపన్యాసంలో, గుర్తు డేవిడ్, ఉన్నప్పుడు అతను ఉన్నారు ఏమిటి మారడానికి ప్రయత్నిస్తున్నాను దానిని నారింజ రసం మరియు milk-- ప్రేక్షకులు: స్థూల ఉంది. అండీ పెంగ్: అవును, ఆ రకమైన స్థూల ఉంది. కానీ అది ఒక అందమైన మంచి ఉంది భావన సమయం చూపిస్తూ. ఇక్కడ మీ విలువలు భావిస్తారు. మీరు ఒక అర్రే పొందారు min, నేను యొక్క వ్యూహం లేదా మేము ఇక్కడ మారడానికి ప్రయత్నిస్తున్న సంసార. మరియు మీరు బహుశా వాటిని పోయాలి కాదు అదే సమయంలో ప్రతి ఇతర, కుడి? కాబట్టి మేము ఏమి వెళ్తున్నారు ఇక్కడ సృష్టించడానికి అవసరం సరిగ్గా విలువలు స్వాప్ చేయడానికి? ప్రేక్షకులు: ఒక తాత్కాలిక వేరియబుల్. అండీ పెంగ్: ఒక తాత్కాలిక వేరియబుల్. కాబట్టి యొక్క పూర్ణాంకానికి తాత్కాలిక తెలియజేసేలా. ఈ ఒక మంచిదని, చూడండి అయ్యో ఆలోచన సమయం, ఆ ఏమి ఉంది? అలాగే. కాబట్టి ఈ మెరుగైన ఉండేది సమయం మారుతూ "తాత్కాలిక." పేరుని కాబట్టి యొక్క పూర్ణాంకానికి తాత్కాలిక తెలియజేసేలా. మేము ఏమి వెళ్తున్నారు ఇక్కడ సమాన తాత్కాలిక సెట్? ప్రేక్షకులు: మిన్? అండీ పెంగ్: ఇది ఒక బిట్ గమ్మత్తైన. ఇది నిజంగా చివరకు పట్టింపు లేదు. ఇది ఏమి పట్టింపు లేదు ఆర్డర్ మీరు లో స్వాప్ ఎంచుకోండి కాలం మీరు చూసుకోవాలి చేసేటపుడు మీరు మీరు ఇచ్చిపుచ్చుకోవడం ఏమి పర్యవేక్షించడం. ప్రేక్షకులు: ఇది శ్రేణి-i కావచ్చు. అండీ పెంగ్: అవును, యొక్క శ్రేణి-i తెలియజేసేలా. తరువాత లైన్ ఏమిటి కోడ్ యొక్క మేము ఇక్కడ కలిగి అనుకుంటున్నారా? ప్రేక్షకులు: శ్రేణి-i శ్రేణి-j సమానం. అండీ పెంగ్: చివరికి? ప్రేక్షకులు: శ్రేణి-j శ్రేణి-i సమానం. ప్రేక్షకులు: ఆర్ శ్రేణి-j సమానం శ్రేణి-temp-- లేదా, తాత్కాలిక. అండీ పెంగ్: OK. కాబట్టి యొక్క ఈ అమలు అనుమతిస్తాయి మరియు చూడండి అది పని జరగబోతోంది ఉంటే. ఆ ఎక్కడ జరిగింది? ఓహ్, ఆ సమస్య ఉంది. మేము ఉన్నాము, లైన్ 40 న, చూడండి శ్రేణి-j ఉపయోగించడానికి ప్రయత్నిస్తున్న? కానీ ఎక్కడ మాత్రమే j ఉందా? ప్రేక్షకులు: లూప్ లో. అండీ పెంగ్: కుడి. కాబట్టి మనం చెయ్యాల్సిన వెళ్తున్నారు? ప్రేక్షకులు: ఉన్నారు వెలుపల నిర్వచించండి ప్రేక్షకులు: అవును, నేను మీరు కలిగి ఊహించడం ప్రకటన, కుడి మరో ఉంటే ఉపయోగించాలి? సో, ఉంటే minimum-- అన్ని కుడి, నాకు అనుకుంటున్నాను తెలియజేయండి. అండీ పెంగ్: గైస్, ప్రయత్నించండి ఒక లుక్ లెట్స్ తీసుకోవాలని , మేము ఇక్కడ ఏదో ఏమి చేయవచ్చు యొక్క చూడండి? ప్రేక్షకులు: OK. కనీస సమానం కాదు చేస్తే కనీస ఉంటే j-- కాబట్టి ఇప్పటికీ i మైనస్ మైనస్ అప్పుడు మేము స్వాప్ ఉండదనే. అండీ పెంగ్: i సమాన ఇవ్వగలవా? ఏం మీరు ఇక్కడ చెప్పటానికి అనుకుంటున్నారు? ప్రేక్షకులు: ఆర్ అవును, ఉంటే కనీస అవును, సమాన లేకుంటే నేను. అండీ పెంగ్: OK. Well ఆ మా సమస్యలు, రకమైన, ఛేదిస్తాడు. కానీ ఆ ఇప్పటికీ పరిష్కరించడానికి లేదు j నుండి j-- ఏమవుతుంది సమస్య అది బయట లేదు, ఏమి మీరు మేము అది తో చెయ్యాలనుకుంటున్నారు? బయట ప్రకటించాలని? యొక్క ఈ నడుస్తున్న ప్రయత్నించండి లెట్. అయ్యో. మా విధమైన పని చేయడం లేదు. మీరు, మా ప్రారంభ గమనిస్తే అర్రే ఆ విలువలు వచ్చింది. మరియు తర్వాత అది ఉండాలి 1, 2, 3, 4, 5, 6, 7, 8, 9 లో. ఇది పని చేయడం లేదు. Ahh. మేము ఏమి చేయాలి? ప్రేక్షకులు: డీబగ్. అండీ పెంగ్: అన్ని కుడి, మేము ఆ ప్రయత్నించవచ్చు. మేము డీబగ్ చేయవచ్చు. ఒక బిట్ బయటకు జూమ్. యొక్క మా బ్రేక్ పాయింట్ సెట్ లెట్. యొక్క వంటి ఫంక్షన్ సరి వీడలేదు. మేము ఇప్పటికే తెలుసు ఎందుకంటే కాబట్టి ఈ పంక్తులు, 15 22 ద్వారా నేను అంతా ఎందుకంటే working-- ఉంటాయి కేవలం ద్వారా మరియు printing-- iterating నేను ముందుకు వెళ్లి ఆ దాటవేయవచ్చు. లైన్ 25 ప్రారంభిద్దాం. Oop, నాకు వదిలించుకోవటం తెలియజేయండి. ప్రేక్షకులు: సో బ్రేక్పాయింట్ యొక్క డీబగ్గింగ్ పేరు మొదలవుతుంది? అండీ పెంగ్: ఆర్ ఆగారు. ప్రేక్షకులు: ఆర్ ఆగారు. అండీ పెంగ్: అవును. మీరు బహుళ బ్రేక్ పాయింట్స్ సెట్ చేయవచ్చు మరియు అది కేవలం ఒక ఇతర వెళ్లగలదు. కానీ ఈ విషయంలో మేము తెలియదు పేరు లోపం జరిగింది. కాబట్టి మేము కేవలం కావలసిన పై నుండి క్రిందికి మొదలు. YEP. అలాగే. ఇక్కడ ఈ లైన్, మేము లో అడుగు చేయవచ్చు. మీరు ఇక్కడ డౌన్ చూడగలరు మేము ఒక అర్రే పొందారు. ఆ విలువలు శ్రేణి ఉన్నాయి. మీరు చూడలేదా, ఆ ఎలా ఇండెక్స్ 0, అది ఓహ్ విలువ అనుగుణంగా నేను జూమ్ ప్రయత్నించండి వెళుతున్న. క్షమించాలి, ఇది నిజంగా కష్టం అర్రే సూచిక 0 వద్ద see-- కు, మేము 4 యొక్క విలువ మరియు అప్పుడు మొదలగునవి మరియు అందువలన న. మేము మా స్థానిక వేరియబుల్స్ ఉన్నాయి. ప్రస్తుతం నేను సమానం మేము అది కోరుకుంటున్న 0. కాబట్టి యొక్క ద్వారా పునాది ఉంచేందుకు వీలు. మా కనీస 0 కి సమానం ఇది మేము కూడా ఉండాలనుకుంటున్నాను. మరియు తర్వాత మేము మా రెండవ నమోదు లూప్, శ్రేణి-j శ్రేణి-i కంటే తక్కువ ఉంటే, ఇది అది కాదు. సో మీరు ఎలా చూసాం ఆ పైగా దాటవేయబడింది? ప్రేక్షకులు: సో ఉంటే తప్పక కనీస, అన్ని ఆ గదా లూప్ మొదటి లోపల? అండీ పెంగ్: కాదు, ఎందుకంటే మీరు ఇప్పటికీ పరీక్షించడానికి కావలసిన. మీరు ప్రతి ఒక పోలిక చేయడానికి కావలసిన సమయం, మీరు ద్వారా అమలు తర్వాత కూడా. మీరు దీన్ని వద్దు మొదటి ఉత్తీర్ణత ద్వారా. మీరు దీన్ని చేయాలనుకుంటున్నారా మళ్ళీ ప్రతి అదనపు పాస్. కాబట్టి మీరు చెక్ అనుకుంటున్నారా లోపల మీ పరిస్థితి. కాబట్టి మేము కేవలం చూడాలని ఇక్కడ ద్వారా అమలు. నేను మీరు అబ్బాయిలు ఒక సూచనను ఇస్తాము. ఇది నిజానికి సంబంధం కలిగి ఉన్నప్పుడు మీరు మీ నియత తనిఖీ చేస్తున్నాము మీరు తనిఖీ చేస్తున్నట్లు సరైన ఇండెక్స్ కోసం. కాబట్టి ప్రస్తుతం మీరు తనిఖీ చేస్తున్న j శ్రేణి సూచిక శ్రేణి కంటే తక్కువ i యొక్క సూచిక. కానీ మీరు వద్ద అప్ చేస్తున్న లూప్ ప్రారంభంలో? మీరు నేను సమానంగా j సెట్ లేదు? అవును, కాబట్టి మేము నిజానికి చెయ్యవచ్చు ఇక్కడ డీబగ్గర్ నిష్క్రమించడానికి. కాబట్టి యొక్క మా pseudocode పరిశీలించి తెలియజేయండి. For-- మేము చేయబోతున్నామని నేను 0 సమానం వద్ద ప్రారంభించండి. మేము 1 n మైనస్ వరకు వెళ్ళి చూడాలని. యొక్క తనిఖీ లెట్, మేము ఆ హక్కు లేదు? YEP, ఆ హక్కు ఉంది. కాబట్టి ఇక్కడ లోపల, మేము ఉన్నాము కనీసం విలువ సృష్టించడానికి జరగబోతోంది మరియు నేను సమాన సెట్. మేము అలా చేసారా? YEP, ఆ చేశాడు. ఇప్పుడు మా లోపలి లూప్ లో, మేము ఉన్నాము j చేయబోవడం i n మైనస్ 1 సమానం. మేము అలా చేసారా? నిజానికి, మేము ఆ చేశాడు. కనుక అయితే, మేము ఇక్కడ ఏమి పోల్చడం ఏమిటి? ప్రేక్షకులు: j ప్లస్ 1. అండీ పెంగ్: ఖచ్చితంగా. ఆపై మీరు సెట్ చూడాలని j ప్లస్ 1 అలాగే సమానంగా మీ కనీస. నేను నిజంగా త్వరగా సాగింది. మీరు అబ్బాయిలు తెలుసా ఎందుకు అది J ప్లస్ 1 ఏముంది? అలాగే. మీ శ్రేణి, కాబట్టి ద్వారా మీ మొదటి పాస్, లూప్ మీ కోసం, Int నేను 0 సమానం, యొక్క కేవలం వీలు ఈ ఇంకా మార్చబడలేనట్లుండి భావించవచ్చును. మేము పూర్తిగా యొక్క వ్యూహం కలిగి కేవలం నాలుగు క్రమబద్ధీకరించనిది అంశాలను, కుడి? కాబట్టి మేము i 0 సమానం ప్రారంభించడం కావలసిన. మరియు నేను కానుంది కేవలం ఈ లూప్ ద్వారా అమలు. కాబట్టి మొదటి పాస్ లో, మేము వెళుతున్న "min" అనే వేరియబుల్ ప్రారంభించడం కూడా ఎందుకంటే, నేను సమానం మేము ఒక కనీస విలువ లేదు. కాబట్టి ఆ అలాగే 0 ప్రస్తుతం సమానంగా ఉంది. మరియు తర్వాత మేము ద్వారా వెళ్ళడానికి వెళుతున్న. మరియు మేము మళ్ళీ iterate మీరు. ఇప్పుడు మేము అనిపిస్తే ఏమి మా కనీస మేము ద్వారా iterate మీరు ఉంది పోల్చారు ఉంటే మళ్ళీ కుడి, చూడటానికి? కాబట్టి j, ఇక్కడ, అన్నారు సమాన నేను, 0 ఇది. ఆపై ఉంటే శ్రేణి j ప్లస్ i, ఇది తక్కువ, తదుపరి పైగా ఉండే ఒకటి మీ ప్రస్తుత కనీస కంటే విలువ మీరు మారడానికి కావలసిన ఉంది. కాబట్టి కేవలం మేము చెప్పటానికి లెట్ యొక్క 2, 5, 1, 8, వంటి, వచ్చింది. ప్రస్తుతం, నేను సమానంగా ఉంది 0 మరియు j 0 సమానం. మరియు మా కనీస విలువ ఉంది. శ్రేణి-j ఉంటే ప్లస్ i మైనస్ మైనస్ ఒకటి కనుక ఆ మేము చూస్తున్న ఒక తర్వాత వార్తలు అది ముందు ఒకటి కంటే ఎక్కువ ఉంటుంది అది కనీస మారింది జరగబోతోంది. కాబట్టి ఇక్కడ మేము 5 ఆ చూడండి కంటే తక్కువ కాదు. కనుక ఇది 5 కాదని జరగబోతోంది. మేము కుడి 1, 2 కంటే తక్కువగా ఉందని? కాబట్టి ఇప్పుడు మేము మా కనీస ఉంది తెలుసు 0, 1, 2 వద్ద ఇండెక్స్ విలువ అవతరిస్తుంది. అవును? ఆపై మీరు, ఇక్కడ డౌన్ వచ్చినప్పుడు మీరు సరైన విలువలు స్వాప్ చేయవచ్చు. కాబట్టి మీరు అబ్బాయిలు కేవలం j జన్మనిచ్చే సమయంలో ముందు, మీరు ఒక చూడటం కాలేదు అది తరువాత. మీరు చూడటం జరిగింది అదే విలువ, ఇది అది కేవలం ఏదైనా చేయడం లేదు ఎందుకు. ఆ దారుణంగా సమంజసం లేదు ఎందుకు మేము ఆ ప్లస్ 1 అవసరం? అలాగే. ఇప్పుడు అది చేయడానికి ద్వారా యొక్క కేవలం అమలు అనుమతిస్తాయి ఖచ్చితంగా కోడ్ మిగిలిన సరైనది. ఎందుకు ఆ జరుగుతోంది? అమ్మో, అది ఇక్కడే min వార్తలు. మేము తప్పు విలువ పోల్చేవారు. అరెరే. అవును, డౌన్ ఇక్కడ మేము ఉన్నాయి అలాగే తప్పు విలువలు ఇచ్చిపుచ్చుకోవడంతో. మేము i మరియు j వద్ద వెతుకుతున్నారు. ఆ మేము తనిఖీ చేశారు కావలి. మేము నిజానికి మారడానికి కావలసిన కనీస, ప్రస్తుత కనీస, సంసార తో ఒక వెలుపల ఉంది. మరియు మీరు అబ్బాయిలు డౌన్ చూడగలరు గా ఇక్కడ, మేము ఒక క్రమబద్ధీకరించబడతాయి శ్రేణి కలిగి. ఇది కేవలం ఏమి వచ్చింది నిజానికి ఉన్నప్పుడు మేము తనిఖీ చేశారు మేము పోల్చేవారు విలువలు, మేము కుడి విలువలు వద్ద చూడటం లేదు. మేము అదే ఒక చూడటం జరిగింది ఇక్కడ, నిజానికి అది ఇచ్చిపుచ్చుకోవడంతో లేదు. మీరు తదుపరి చూడండి కలిగి దానికి ఆపై మీరు స్వాప్ చేయవచ్చు. కాబట్టి ఆ రకమైన ఏది ముందు మా కోడ్ బగ్గింగ్. మరియు నేను ఏ ఇక్కడ చేసిన ప్రతిదీ ఉంది డీబగ్గర్ మీరు పూర్తి కాలేదు నేను చేసియున్నారు బోర్డు, అది సులభం ఎందుకంటే ప్రయత్నము చేయకుండా చూడటానికి డీబగ్గర్ లో జూమ్. అందరికి సమంజసం లేదు? కూల్. అయితే సరే. మేము గురించి మాట్లాడుకుంటున్నారో న తరలించవచ్చు asymptotic సంజ్ఞామానం, ఇది మాట్లాడుతూ ఒక ఫాన్సీ మార్గం ఈ రకమైన అన్ని యొక్క runtimes. నేను ఉపన్యాసంలో, డేవిడ్ తెలుసు, runtimes మీద తాకిన. మరియు అతను మొత్తం సూత్రం ద్వారా వెళ్ళింది యొక్క runtimes లెక్కించేందుకు ఎలా. గురించి కంగారుపడవద్దు. మీరు నిజంగా ఆసక్తికరమైన అయితే ఆ పని ఎలా, విభాగం తరువాత నాకు మాట్లాడాలని సంకోచించకండి. మేము ద్వారా నడిచే కలిసి సూత్రాలు. కానీ అన్ని మీరు అబ్బాయిలు నిజంగా కలిగి తెలుసు n 2 పైగా స్క్వేర్డ్ అని స్క్వేర్డ్ n అదే విషయం. అతిపెద్ద అనేక ఎందుకంటే, విశేషము, అత్యంత పెరుగుతుంది. అందువలన, మా ప్రయోజనాల కోసం మనం శ్రద్ధ అన్ని పెరగటాన్ని దిగ్గజం సంఖ్య. సో వాట్ ఉత్తమ కేసు ఎంపిక విధమైన రన్టైమ్? మీరు చూడాలని ఉంటే జాబితా ద్వారా iterate ఆపై ద్వారా iterate ఆ జాబితాలో మిగిలిన ఎన్ని సార్లు మీరు బహుశా వెళ్ళడం లో చెత్త సందర్భంలో లో కేసు ఉత్తమ, ద్వారా అమలు sorry--? బహుశా మంచి ప్రశ్న గోవా, చెత్త సందర్భంలో ఏమిటి ఎంపిక విధమైన రన్టైమ్. ప్రేక్షకులు: n స్క్వేర్డ్. అండీ పెంగ్: ఇది n కుడి, స్క్వేర్డ్. ఈ వంటిది కాబట్టి ఒక సులభమైన మార్గం ఆలోచించాలి, మీరు ఉచ్చులు కోసం సమూహం రెండు ఏ సమయంలో, అది n స్క్వేర్డ్ అని జరగబోతోంది. మీరు మాత్రమే ఎందుకంటే మరోసారి ద్వారా అమలు, మీరు తిరిగి వెళ్ళాలి చుట్టూ మరియు అది ద్వారా అమలు మరోసారి ప్రతి విలువ కోసం లోపల. ఆ సందర్భంలో, మీరు n అమలు చేస్తున్నారు సార్లు n, క్షమించండి is-- ఇది స్క్వేర్డ్ n సార్లు n, n స్క్వేర్డ్ సమానం. మరియు విధమైన కూడా ఒక బిట్ ఉంది భావంలో ఏకైక అది ఉంటే ఈ పట్టింపు లేదు విలువలు క్రమంలో ఇప్పటికే ఉన్నాయి. ఇది ఇప్పటికీ ఏమైనప్పటికీ ద్వారా అమలు జరగబోతోంది. యొక్క కేవలం ఈ 1, 2, 3, 4 అని. సంబంధం లేకుండా అది లో లేదో ఆర్డర్, అది ఇప్పటికీ ద్వారా నడిచింది ఉండేది మరియు ఇప్పటికీ కనీస విలువ వచ్చేసాడు. వచ్చింది ఉండేది తనిఖీలు అదే నెంబర్ ప్రతి ఒక్క సారి కూడా అది ఉంటే వాస్తవానికి ఏదైనా టచ్ లేదు. అటువంటి సందర్భంలో, ఉత్తమ మరియు చెత్త runtimes నిజానికి సమానంగా ఉంటాయి. కాబట్టి డేటా రన్టైమ్ ఎంపిక విధమైన, ఇది మేము సింబల్ కేటాయించడానికి తీటా, తీటా, ఈ సందర్భంలో, కూడా స్క్వేర్డ్ n అవుతుంది. ఇవన్నీ మూడు స్క్వేర్డ్ n అవుతుంది. ఎందుకు ప్రతి ఒక్కరూ స్పష్టం రన్టైమ్ స్క్వేర్డ్ n? అయితే సరే. కాబట్టి నేను వెంటనే అమలు వెళుతున్న రకాల మిగిలిన. కోసం అల్గోరిథం బబుల్ గుర్తు విధమైన ఈ మొదటి ఒకటి డేవిడ్ ఉపన్యాసంలో పైగా జరిగింది. అత్యావశ్యకము, మీరు దశల మొత్తం జాబితా ద్వారా మరియు మీరు కేవలం మీరు swap ఒక సమయంలో రెండు సరిపోల్చండి. మరియు ఒక, ఎక్కువ ఉంటే మీరు కంటే కేవలం వాటిని మార్పిడి. ఈ ఎక్కువ కనుక, మీరు మార్పిడి అని. నేను ఇక్కడే అధికారిక పొందారు. కాబట్టి యొక్క కేవలం మీరు 8, 6, 4, 2 కలిగి చెప్పారు. మీరు 8 మరియు 6 సరిపోల్చండి ఇష్టం. మీరు వాటిని మార్పిడి అవసరం ఇష్టం. మీరు 8 మరియు ఒక 4 పోల్చి చేస్తుంది. మీరు వాటిని మార్పిడి అవసరం ఇష్టం. మీరు 8 మారడానికి ఉంటే మరియు 2, అలాగే వాటిని మార్చడానికి. అటువంటి భావం కాబట్టి, మీరు చూడగలరు సుదీర్ఘ కాలంలో ప్రదర్శించి, ఎలా బుడగ విలువలు రకమైన ఇది చివరలను, మనం ఎందుకు కాల్ బబుల్ సార్ట్. మేము న మళ్ళీ ద్వారా అమలు అయ్యే మా రెండవ పాస్, మరియు మా మూడవ పాస్, మరియు మా నాలుగో పాస్. ముఖ్యంగా, బబుల్ సార్ట్ కేవలం నడుస్తుంది మీరు ఏ మార్పిడులు చేయటం లేదు వరకు. ఆ భావంలో కాబట్టి, ఈ కేవలం ఉంది అది సాధారణ pseudocode. కంగారుపడవద్దు, ఇవన్నీ ఆన్లైన్ ఉంటుంది. మేము నిజానికి ఈ వెళ్ళి లేదు. మేము కేవలం ఒక కౌంటర్ ప్రారంభించడం 0 మొదలవుతుంది ఆ వేరియబుల్. మరియు మేము మొత్త ద్వారా iterate. మరియు ఒక విలువ ఈ ఉంటే is-- ఉంటే విలువ, ఆ విలువ కంటే ఎక్కువ మీరు వాటిని మార్పిడి చూడాలని. ఆపై మీరు కేవలం ఉన్నాము కొనసాగించడాన్ని వెళుతున్న. మరియు మీరు లెక్కించాలి చూడాలని. మరియు మీరు కేవలం పనిని చూడాలని ఈ కౌంటర్ ఎక్కువ అయితే అంటే 0, కంటే ప్రతిసారీ మీరు మార్పిడి కలిగి మీరు వెళ్లాలని మీరు తెలుసు తిరిగి మళ్లీ తనిఖీ. మీరు తెలుసు వరకు పరిశీలన ఉంచాలని మీరు ఇకపై మారడానికి లేదు. సో ఉత్తమ మరియు చెత్త ఏవి కేసు బబుల్ సార్ట్ కోసం runtimes? మరియు hint-- ఈ నిజానికి భిన్నంగా ఉంటుంది భావంలో ఎంపిక విధమైన నుండి ఈ రెండు సమాధానాలు అదే లేని. లో జరుగుతుంది ఏమి గురించి ఆలోచించండి ఒక సందర్భంలో ఇప్పటికే క్రమబద్ధీకరించబడతాయి ఉంటే. మరియు గురించి ఏమనుకుంటున్నారో ఇది ఉంటే జరుగవచ్చు సందర్భంలో అది క్రమబద్ధీకరించబడింది లేదు. మరియు మీరు రకమైన అమలు చెయ్యవచ్చు ఎందుకు ద్వారా జరుగుతున్నది ఆ. నేను 30 వంటి, మీరు అబ్బాయిలు ఇస్తాము సెకన్లు గురించి ఆలోచించడం. అలాగే. ఎవరైనా ఏమి వద్ద ఒక అంచనా ఉంటాయా బబుల్ సార్ట్ చెత్త runtime కేసు ఉంది? అవును. ప్రేక్షకులు: ఇది వంటి, n సార్లు అవుతుంది n మైనస్ 1 లేదా ఏదో? ఇలా, అది నడుస్తుంది ప్రతిసారీ, అది ఒక స్వాప్ తక్కువ, వంటి, కేవలం సంసార అది ఉంది. అండీ పెంగ్: అవును, కాబట్టి మీరు పూర్తిగా ఉన్నాము. మరియు ఈ ఒక ఉదాహరణ ఉంది మీ సమాధానం నిజానికి మరింత సంక్లిష్టంగా ఒకటి కంటే మేము ఇవ్వాలని అవసరం. కనుక ఇది నేను ఉన్నాను, రన్ జరగబోతోంది ఇక్కడ అన్ని ఈ వేయండి వెళుతున్న. ప్రతి ఒక్కరూ మంచి? నేను ఈ వేయండి చేయవచ్చు? అలాగే. మీరు n ద్వారా అమలు చూడాలని సార్లు మొదటిసారి, కుడి? మరియు వారు ద్వారా అమలు చూడాలని n మైనస్ 1 రెండవసారి, కుడి? ఆపై మీరు ఉంచడానికి వెళుతున్న n గని 2, et సెటేరా, వెళుతున్నారు. డేవిడ్ పేరు ఒక ఉపన్యాసం లో చేసింది, మీరు అన్ని ఆ విలువలు అప్ జోడిస్తే, మీరు ఏదో పొందుటకు వంటి ఫంక్షన్ అవును ముఖ్యంగా కేవలం తగ్గించే 2, పైగా n కు డౌన్ స్క్వేర్డ్. మీరు ఒక పొందడానికి వెళుతున్న అక్కడ విచిత్రమైన భిన్నం. కాబట్టి కేవలం తెలుసు n ఎల్లప్పుడూ స్క్వేర్డ్ భిన్నం పైగా ప్రాధాన్యతలని తీసుకుంటుంది. కాబట్టి ఈ సందర్భంలో, చెత్త రన్టైమ్ స్క్వేర్డ్ n అవుతుంది. ఇది అవరోహణ లో ఉంటే ఆర్డర్, మీరు అనుకుంటున్నాను స్వాప్ ప్రతి ఒక్క సారి చేసుకోవాలి. సమర్థవంతంగా, ఏమి ఉంటుంది ఉత్తమ runtime కేసు? జాబితా ఇప్పటికే ఉంటే, చెప్పడానికి లెట్ క్రమంలో, రన్టైమ్ ఏమి ఉంటుంది? ప్రేక్షకులు: n. అండీ పెంగ్: ఇది సరిగ్గా, n యొక్క. ఎందుకు అది n ఉంది? ప్రేక్షకులు: మీరు ఎందుకంటే కేవలం ప్రతి ఒకసారి తనిఖీ కలిగి. అండీ పెంగ్: ఖచ్చితంగా. ఉత్తమమైన రన్టైమ్ కాబట్టి ఈ జాబితాలో ఇప్పటికే ఉంటే sorted--, యొక్క 1, 2, 3 అని పిలవబడు 4-- మీరు కేవలం ద్వారా వెళ్ళి, మీరు తనిఖీ చేస్తుంది మీరు OH, వారు అన్ని బయటకు కు, చూస్తాము. నేను మారడానికి లేదు. నేను పూర్తిచేసాను. కాబట్టి ఆ సందర్భంలో, అది కేవలం n యొక్క లేదా దశలను సంఖ్య మీరు కేవలం తొలి జాబితాలో తనిఖీ వచ్చింది. మరియు తరువాత, మేము ఇప్పుడు హిట్ చొప్పించడం విధమైన, పేరు అల్గోరిథం విభజన తప్పనిసరిగా ఉంది అది ఒక క్రమబద్ధీకరించబడతాయి మరియు క్రమబద్ధీకరించనిది భాగంలోకి. తరువాత ఒక ద్వారా ఒక, క్రమబద్ధీకరించనిది విలువలు వారి తగిన చేర్చబడ్డ జాబితా ప్రారంభంలో స్థానాలు. ఉదాహరణకు, మేము ఒక కలిగి 3 జాబితా, 5, 2, 6, 4 మళ్ళీ. మేము అది ప్రస్తుతం మనకు తెలుసు క్రమబద్ధీకరించనిది మేము కేవలం చేసిన ఎందుకంటే అది చూడటం ప్రారంభించారు. మేము పరిశీలించి మరియు మేము తెలుసు మొదటి విలువ, కుడి క్రమబద్ధీకరించబడింది? మీరు మాత్రమే ఒక అర్రే చూస్తుంటే పరిమాణం ఒకటి, మీరు క్రమబద్ధీకరించబడతాయి యొక్క తెలుసు. కాబట్టి అప్పుడు మేము తెలుసు ఇతర నాలుగు క్రమబద్ధీకరించనిది ఉంటాయి. మేము ద్వారా వెళ్ళి మేము ఆ విలువ చూడండి. యొక్క తిరిగి వెళ్ళి తెలపండి. 5 ఆ విలువ చూడండి? మేము అది వద్ద టేక్ ఎ లుక్. మేము 3 ను పోల్చి. మేము అది కంటే ఎక్కువ తెలుసు 3, కాబట్టి మేము ఆ క్రమబద్ధీకరించబడతాయి తెలుసు. కాబట్టి మేము ఇప్పుడు తెలిసిన మొదటి రెండు క్రమబద్ధీకరించబడతాయి మరియు గత మూడు మాత్రం కావు. మేము 2 వద్ద టేక్ ఎ లుక్. మేము మొదటి 5 తో తనిఖీ. 5 కంటే తక్కువ? ఇది కాదు. కాబట్టి మేము చూచుచున్నారు పెట్టాలి. అప్పుడు మీరు 3 ఆఫ్ 2 తనిఖీ. ఇది కంటే తక్కువ? నం సో మీరు ఒక 2 చేర్చబడ్డ ఉంటుంది తెలుసు ముందు మరియు 3 మరియు 5 రెండు బయటకు నెట్టి ఉండాలి. 6 మరియు 4 తో మళ్లీ దీన్ని. మరియు మేము కేవలం తప్పనిసరిగా తనిఖీ ఉంచాలని మేము కేవలం పేరు తనిఖీ, తనిఖీ తనిఖీ. మరియు కుడి వరకు స్థానం, మేము రకమైన కేవలం కుడి స్థానం ఇన్సర్ట్, ఇది యొక్క పేరు నుండి వచ్చింది ఎక్కడ ఉంది. కాబట్టి కేవలం అల్గోరిథం యొక్క pseudocode కేవలంగా, రకమైన, మేము అమలు ఎలా న ఒక చొప్పించడం విధమైన. Pseudocode ఇక్కడ ఉంది. అన్ని ఆన్లైన్ యొక్క. కంగారుపడవద్దు మీరు అబ్బాయిలు ఉంటే ఈ డౌన్ కాపీ ప్రయత్నిస్తున్న. కాబట్టి మరోసారి అదే ప్రశ్నకు ఏమి ఉత్తమ మరియు చెత్త runtimes ఉంటుంది చొప్పించడం విధమైన కోసం? ఇది చివరి ప్రశ్నకు చాలా పోలి ఉంది. నేను 30 వంటి, మీరు అబ్బాయిలు ఇస్తాము సెకన్లు అలాగే ఈ గురించి ఆలోచించడం. ఎవరైనా అనుకుంటుంది సరే నాకు చెత్త రన్టైమ్ ఇవ్వాలని? అవును. ప్రేక్షకులు: n స్క్వేర్డ్. అండీ పెంగ్: ఇది స్క్వేర్డ్ n. ఎందుకు అది స్క్వేర్డ్ N? ప్రేక్షకులు: ఎందుకంటే రివర్స్ క్రమంలో, మీరు is-- ఇది, n సార్లు ద్వారా వెళ్ళడానికి n కు అండీ పెంగ్: అవును, సరిగ్గా. బబుల్ సార్ట్ వంటి కాబట్టి అదే విషయం. ఈ జాబితాలో ఉంటే క్రమం, మీరు మొదటి ఒకసారి తనిఖీ పొందబోతున్నారు. ఆపై ప్రతి అదనపు విలువ, మీరు ఉన్నాము పొందబోతున్నారు వ్యతిరేకంగా తనిఖీ చెయ్యడానికి కుడి ప్రతి విలువ? అందువలన పూర్తిగా, మీరు తయారు చేయబోతున్నామని ఒక n పాస్ సార్లు మరొక n, పాస్ స్క్వేర్డ్ n. ఏమి ఉత్తమ కేసు గురించి? అవును. ప్రేక్షకులు: n 1 మైనస్ ఎందుకంటే మొదటి ఒక ఇప్పటికే స్క్వేర్డ్. అండీ పెంగ్: కాబట్టి, దగ్గరగా. సమాధానం నిజానికి n. మొదటి ఒకటి అయితే ఎందుకంటే క్రమబద్ధీకరించబడింది, అది నిజానికి ఉండకపోవచ్చు మేము కేవలం, అవ్ట్ lucked ఉదాహరణకు, 2 చిన్న సంఖ్య సంభవించింది. కానీ ఎప్పుడూ కేసు ఉండదు. 2 ఇప్పటికే ప్రారంభంలో క్రమబద్ధీకరించబడింది ఉంటే కానీ మీరు చూడండి మరియు ఇక్కడ ఒక 1 ఉంది 1 అది bump అన్నారు. మరియు అది అంతం చేస్తాడు అప్ ఏమైనప్పటికీ దాని పట్టును సడలించింది. ఉత్తమ దృష్టాంతంలో కాబట్టి ఇది నిజానికి కేవలం n చేస్తాడు. మీరు కలిగి ఉంటే 1, 2, 3, 4, 5, 6, 7, 8, మీరు ద్వారా అమలు వెళుతున్న మొత్తం జాబితా ఒకసారి ప్రతిదీ జరిమానా ఉంటే చూడటానికి తనిఖీ. రన్నింగ్ న ఒక్కరూ స్పష్టం అలాగే ఎంపిక సార్లు? నేను ద్వారా వెళుతున్న తెలుసు ఈ నిజంగా ఫాస్ట్. కానీ కేవలం మీకు తెలిస్తే తెలుసు సాధారణ విషయం, మీరు మంచి ఉండాలి. అలాగే. సో నేను వంటి, బహుశా మీరు అబ్బాయిలు ఇస్తాము, ఒక నిమిషం మీ పొరుగు మాట్లాడటానికి ఏవి కేవలం కొన్ని ప్రధాన వ్యత్యాసాల్లో రకాల ఈ రకమైన మధ్య. మేము ఆ వెంటనే వెళ్ళి చేస్తాము. ప్రేక్షకులు: OK, ఓహ్. అండీ పెంగ్: అవును. అలాగే. కూల్, యొక్క ఒక తరగతి reconvene తెలియజేయండి. అలాగే. కాబట్టి ఈ ఉన్నారు రకమైన భావంలో అపరిమిత ప్రశ్న వారికి సమాధానాలు ఎన్నో ఉన్నాయి. మరియు మేము క్లుప్తంగా వాటిలో కొన్ని వెళ్ళి చేస్తాము. నేను మీరు అబ్బాయిలు కావాలని ఆయన కోరారు వేరుగా ఏమి గురించి ఆలోచిస్తూ రకాల మూడు రకాలు. నేను కూడా ఒక గొప్ప విన్న ఏమి విధమైన విలీనం లేదు ప్రశ్న? గ్రేట్ ప్రశ్న, ఆ ఎందుకంటే మనం తదుపరి కవర్ చేసిన. కాబట్టి విధమైన ఉంది విలీనం ఆ విధులు ఒక విధమైన చాలా భిన్నంగా ఇతర రకాల నుండి. మీరు అబ్బాయిలు see-- గా డేవిడ్ డెమో చేసావ్ అతను అన్ని చల్లని కలిగి ఉన్న విలీనం ఎలా చూసిన శబ్దాలు విధమైన అనంతమైన, వంటి, నడిచింది ఇతర రెండు రకాల కంటే వేగంగా? అలాగే. కాబట్టి ఆ విలీనంతో ఎందుకంటే విధమైన విభజన అమలుచేసే మరియు మేము చేసిన భావన జయించటానికి ఉపన్యాసంలో చాలా గురించి మాట్లాడారు. మేము పని చేయాలని ఆ కోణంలో తెలివిగా, మీరు విభజించబడినప్పుడు, కాదు కష్టం మరియు సమస్యలు జయించటానికి మరియు వాటిని తొలగించేందుకు డౌన్, ఆపై, వాటిని కూర్చు మంచి విషయాలు ఎప్పుడు జరుగుతుంది. విలీనం కాబట్టి ఆ విధంగా విధమైన తప్పనిసరిగా పనిచేస్తుంది అది ఒక విభజిస్తుంది ఉంది సగం లో క్రమబద్ధీకరించనిది శ్రేణి. మరియు అప్పుడు అది శ్రేణుల రెండు విభజించటం కలిగియున్నారు. మరియు అది కేవలం ఆ రెండు విభజించటం క్రమబద్ధీకరిస్తుంది. ఇది కేవలం, సగం విభజన ఉంచుతుంది సగం, సగం లో ప్రతిదీ క్రమబద్ధీకరించబడింది వరకు ఆపై పునరావృతంగా కలిసి అది అన్ని ఉంచుతుంది. తద్వారా నిజంగా నైరూప్య వార్తలు. కాబట్టి ఈ pseudocode కేవలం ఒక బిట్ ఉంది. ఆ సమంజసం లేదు ఇది అమలు మార్గం? సో మీరు ఒక కలిగి చెప్పటానికి లెట్ యొక్క n మూలకాల శ్రేణి, కుడి? N 2 కంటే తక్కువ ఉంటే, మీరు తిరిగి చేయవచ్చు. మీకు తెలిసిన ఎందుకంటే అక్కడ ఉంటే మాత్రమే ఒక విషయం, అది వేరు చేయాల్సి ఉంటుంది. ఎల్స్, మీరు ఎడమ అర్ధ క్రమం, మరియు అప్పుడు మీరు కుడి సగం క్రమం, ఆపై మీరు విలీనం. నిజంగా సులభంగా కనిపిస్తుంది కాబట్టి, వాస్తవానికి, దాని గురించి ఆలోచిస్తూ వార్తలు కష్టం యొక్క రకమైన. మీరు వంటి ఉన్నాము ఎందుకంటే, బాగా, ఆ రకమైన పైనే అమలు. కుడి? ఇది కూడా నడుస్తున్న లో. కాబట్టి ఆ కోణంలో, డేవిడ్ తాకిన తరగతి లో సూత్రం మీద. మరియు ఒక భావన ఉంది మేము మరింత గురించి మాట్లాడదాము. ఇది ఈ ఈ రెండు పంక్తులు ఇక్కడ నిజానికి కార్యక్రమం అది చెప్పడం కూడా అమలు వివిధ ఇన్పుట్ తో. కాబట్టి బదులుగా తో కూడా అమలు కంటే n మూలకాల సంపూర్ణంగా, మీరు అది విచ్ఛిన్నం చేయవచ్చు ఎడమ అర్ధ మరియు కుడి సగం ఆపై మళ్లీ అమలు. మరియు తర్వాత మేము, దృశ్యపరంగా అది వద్ద పరిశీలిస్తాము నేను ఒక విజువల్ లెర్నర్ రెడీ ఎందుకంటే. ఇది నాకు బాగా పనిచేస్తుంది. కాబట్టి మేము ఇక్కడ ఒక దృశ్య ఉదాహరణకు వద్ద పరిశీలిస్తాము. ఆరు లెట్ యొక్క మేము ఒక శ్రేణి కలిగి చెప్పారు అంశాలు, 3, 5, 2, 6, 4, 1, క్రమబద్ధీకరించబడింది లేదు. అన్ని కుడి, ఈ పేజీలో చాలా ఉంది. మీరు అబ్బాయిలు చూడవచ్చు చేస్తే ఇక్కడ మొదటి అడుగు, 3, 5, 2, 6, 4, 1, మీరు సగం లో విడిపోయినట్లు చేయవచ్చు. మీరు 3, 5, 2, 6, 4, 1 ఉన్నాయి. ఈ మీరు aren't-- తెలుసు వారు క్రమబద్ధీకరించబడతాయి లేదా కాకపోతే తెలియదు, కనుక మీరు సగం లో, వాటిని విడగొట్టి ఉంచేందుకు, సగం లో, సగం లో, చివరికి వరకు, మీరు మాత్రమే ఒక మూలకం ఉంది. మరియు ఒక మూలకం ఎల్లప్పుడూ సరైన, క్రమబద్ధీకరించబడింది? కాబట్టి మేము తెలిసిన 3, 5, 2, 4, 6, 1 తమను ద్వారా, క్రమబద్ధీకరించబడతాయి. మరియు ఇప్పుడు మేము కలిసి వాటిని తిరిగి ఉంచవచ్చు. కాబట్టి మేము 3, 5 తెలుసు. మేము కలిసి ఆ ఉంచారు. మేము క్రమబద్ధీకరించబడతాయి నాకు తెలుసు. ఇప్పటికీ అక్కడ 2 యొక్క. మేము కలిసి 4 మరియు 6 ఉంచవచ్చు. మేము ఆ క్రమబద్ధీకరించబడతాయి తెలుసు కాబట్టి మేము కలిసి ఉంచారు. మరియు 1 ఉంది. ఆపై మీరు కేవలం చూడండి ఇక్కడే ఈ రెండు విభజించటం. మీరు 3, 5, 2, 2, 3, 5 కలిగి. మీరు కేవలం సరిపోల్చవచ్చు ప్రతిదీ ప్రారంభం. మీరు ఈ క్రమబద్ధీకరించబడింది తెలుసు ఎందుకంటే మరియు మీరు ఆ క్రమబద్ధీకరించబడతాయి తెలుసు. కాబట్టి అప్పుడు మీరు కూడా లేదు 5 పోల్చడం, మీరు కేవలం 3 సరిపోల్చండి. మరియు 2 కాబట్టి, 3 కంటే తక్కువ మీరు 2 చివరికి వెళ్ళి ఉండాలి తెలుసు. అక్కడ పైగా ఇదే. 1 ఇక్కడ వెళ్లాలి. మీరు వెళ్ళేటప్పుడు మరియు అప్పుడు ఉంచాలి కలిసి ఆ రెండు విలువలు, మీరు ఈ క్రమబద్ధీకరించబడింది తెలుసు మరియు మీరు ఆ క్రమబద్ధీకరించబడింది తెలుసు. కాబట్టి అప్పుడు 1 మరియు 2, 1 2 కంటే తక్కువ. ఆ 1 అని మీరు చెబుతుంది ఈ చివరిలో వెళ్ళి ఉండాలి కూడా 3 లేదా 5 చూడటం లేకుండా. ఆపై 4, మీరు కేవలం చెయ్యవచ్చు అది ఇక్కడ కుడి వెళ్తాడు, తనిఖీ. మీరు 5 చూడండి లేదు. 6 తో అదే విషయం. మీకు తెలుసా 6 అది కేవలం ఆ చూశారు అవసరం లేదు. కాబట్టి ఆ విధంగా, మీరు కేవలం మిమ్మల్ని మీరు సేవ్ దశలు చాలా మీరు పోల్చడం చేసినప్పుడు. మీరు ప్రతి పోల్చడానికి లేదు ఇతర అంశాలు వ్యతిరేకంగా మూలకం. మీరు వాటిని వ్యతిరేకంగా సరిపోల్చండి మీరు వ్యతిరేకంగా పోల్చడం అవసరం. కాబట్టి ఆ ఒక అమూర్త ఉంటాము. కంగారుపడవద్దు ఇది లేకుంటే సరైన ఇంకా మీరు కొట్టిన. కానీ సాధారణంగా, ఈ ఎలా ఒక విలీనంతో విధమైన పనిచేస్తుంది. ప్రశ్నలు, శీఘ్ర ప్రశ్నలు, నేను ముందుకు ముందు? అవును. ప్రేక్షకులు: సో మీరు తీసుకోవాలని అన్నారు 1, ఆపై 4 మరియు 6 మరియు వాటిని ఉంచండి. కాబట్టి those-- లేదు కాదు మీరు వాటిని చూడటం కాదు మొత్తంగా ప్రత్యేక అంశాలు, వంటి? అండీ పెంగ్: అవును. కాబట్టి ఏం మీరు ఆ రప్పించింది ఒక బ్రాండ్ కొత్త శ్రేణి సృష్టిస్తున్నారు. కాబట్టి మీరు, ఇక్కడ, నేను కలిగి తెలుసు పరిమాణం 3 యొక్క రెండు శ్రేణుల, కుడి? సో మీరు తెలుసు నా క్రమబద్ధీకరించబడతాయి శ్రేణి ఆరు అంశాలు కలిగి ఉండాలి. కాబట్టి మీరు ఒక సృష్టించడానికి మెమరీ కొత్త మొత్తం. కాబట్టి మీరు రకమైన వంటి ఉన్నాము మెమరీ వ్యర్థమైన ఉండటం కానీ ఆ పట్టింపు లేదు అది చిన్న ఎందుకంటే. కాబట్టి మీరు 1 చూడండి మరియు మీరు 2 వద్ద చూడండి. మరియు మీరు 1 2 కంటే తక్కువ తెలుసు. కాబట్టి మీరు 1 లో వెళ్ళాలి అని తెలుసు ఆ అన్ని ప్రారంభంలో. మీరు కూడా అవసరం లేదు 3 మరియు 5 చూడండి. కాబట్టి మీరు 1 అక్కడ వెళ్తాడు తెలుసు. అప్పుడు మీరు ప్రధానంగా 1 ఆఫ్ గొడ్డలితో నరకడం. ఇది మాకు చనిపోయిన, వంటి, వార్తలు. అప్పుడు మేము 2 కలిగి, 3, 5, ఆపై 4 మరియు 6. ఆపై మీరు, మీరు ఆ తెలుసు సరిపోల్చండి 4 మరియు 2 ఓహ్, 2 లో అక్కడ వెళ్ళాలి. కాబట్టి మీరు 2 డౌన్ plop, మీరు ఇది ఆఫ్ గొడ్డలితో నరకడం. కాబట్టి అప్పుడు మీరు కేవలం 3 కలిగి మరియు 4 మరియు 6 లో 5. మరియు మీరు కేవలం అది ఆఫ్ chopping ఉంచడానికి మీరు శ్రేణి వాటిని చాలు వరకు. ప్రేక్షకులు: సో మీరు కేవలం ఎప్పుడూ ఉన్నాము [వినబడని] పోల్చడం? అండీ పెంగ్: ఖచ్చితంగా. కాబట్టి ఆ కోణంలో, మీరు కేవలం పోల్చడం, ముఖ్యంగా, ఇతర సంఖ్యలో వ్యతిరేకంగా ఒక సంఖ్య. మరియు మీరు తెలుసు ఎందుకంటే అది, మీరు క్రమబద్ధీకరించబడతాయి ఆ ద్వారా చూడండి లేదు సంఖ్యల అన్ని. మీరు కేవలం మొదటి ఒకటి చూడటానికి కలిగి. ఆపై మీరు కేవలం plop చేయవచ్చు వాటిని డౌన్, మీరు తెలుసు ఎందుకంటే వారు చెందిన అవసరం పేరు వారు చెందిన. అవును. మంచి ప్రశ్న. ఆపై మీరు ఏ ఉంటే ఒక బిట్ ప్రతిష్టాత్మక ఉంటాయి, ఈ కోడ్ చూడండి సంకోచించకండి. ఈ నిజానికి భౌతిక కార్యాచరణ మేము విలీనంతో విధమైన రాస్తుంది ఎలా. మరియు మీరు చాలా చిన్న, చూడగలరు. వెనుక కానీ ఆలోచనలు ఇది చాలా క్లిష్టంగా ఉంటాయి. సో మీరు ఈ బయటకు లాక్కొని భావిస్తాను ఉంటే మీ హోంవర్క్ టునైట్ లో, సంకోచించకండి. అలాగే. కాబట్టి డేవిడ్ కూడా ఉపన్యాసంలో ఈ వెళ్లాడు. ఉత్తమ కేసు ఏమిటి runtimes, చెత్త సందర్భంలో runtimes, మరియు విలీనం విధమైన భావిస్తున్నారు runtimes? ఒక జంట సెకన్లు ఆలోచించాలి. ఈ అందంగా కష్టం, కానీ రకమైన మీరు దాని గురించి స్పష్టమైన అనుకుంటే. అయితే సరే. ప్రేక్షకులు: చెత్త సందర్భంలో n లాగ్ n ఉంది? అండీ పెంగ్: ఖచ్చితంగా. మరియు ఎందుకు n లాగ్ n. ప్రేక్షకులు: అది కాదు ఎందుకంటే విశేషంగా వేగంగా అవుతుంది కాబట్టి ఆ యొక్క ఒక ఫంక్షన్ వంటిది బదులుగా కేవలం n అనే స్క్వేర్డ్ లేదా ఏదో? అండీ పెంగ్: ఖచ్చితంగా. సో ఎందుకు కారణం ఈ రన్టైమ్ n లాగ్ మీరు ఏవి ఎందుకంటే n ఉంది ఈ దశలను లో చేస్తున్న? మీరు కేవలం కుడి, సగం లో అది వేరుచేయడానికి చేస్తున్నారు? కాబట్టి మేము చేస్తున్నా చేయుచున్నాడు అన్ని, లాగిన్ సగం లో ఒక సమస్య విభజించడం ఉంది, సగం లో, సగం లో, మరింత విభజించటం. మరియు ఆ కోణంలో, మీరు రకమైన చెయ్యవచ్చు యొక్క దీర్ఘ నమూనా తొలగించడానికి మేము ఉపయోగించి పరిష్కరించగలుగుతున్నాము. మీరు గొడ్డలితో నరకడం చేసినప్పుడు ఎందుకంటే సగం లో విషయాలు, అది ఒక చిట్టా ఉంది. కేవలం గణిత వార్తలు అది ప్రాతినిధ్యం మార్గం. మరియు తర్వాత చివరకు, చివర, మీరు కేవలం ఒక చివరి పాస్ చేస్తూ కుడి క్రమంలో వాటిని అన్ని ఉంచాలి? కాబట్టి మీరు కేవలం కలిగి ఉంటే ఒక విషయం తనిఖీ, ఆ n వార్తలు. అందువలన మీరు రకమైన ఉన్నాము రెండు కలిసి గుణించడం. మీరు తుది పొందారు వంటి కనుక ఇది n యొక్క లాగ్ తో ఇక్కడ డౌన్ n కోసం తనిఖీ ఇక్కడ. మరియు మీరు గుణిస్తారు ఉంటే వాటిని ఆ n లాగ్ n యొక్క. అందువలన ఉత్తమ కేసు మరియు చెత్త కేసు మరియు అన్ని n లాగ్ n ఉంటాయి అంచనా. ఇది మరొక విధమైన వంటి కూడా. ఇది ఎంపిక విధమైన వంటిది ఆ కోణంలో ఏమి పట్టింపు లేదు మీ జాబితా ఇది కేవలం జరగబోతోంది ఉంది అదే విషయం ప్రతి ఒక్క సారి చేయాలని. అలాగే. అయినప్పటికీ, మీరు అబ్బాయిలు చూడగలరు కాబట్టి మేము n through-- మారారు రకాల స్క్వేర్డ్, అది చాలా సమర్థవంతంగా కాదు. మరియు కూడా ఈ n లాగ్ n ఉంది అత్యంత సమర్థవంతంగా కాదు. మీరు అబ్బాయిలు ఆసక్తికరమైన అయితే, విధమైన విధానాల ఉంది వారు ఉన్నట్లు అందువల్ల సామర్థ్యం ఆ దాదాపు చదునుగా రన్టైమ్ను. మీరు కొన్ని లాగ్ n యొక్క పొందాను. మీరు కొన్ని లాగ్ లాగ్ n యొక్క పొందాను. మేము వాటిని మీద టచ్ లేదు ప్రస్తుతం ఈ తరగతి లో. కానీ మీరు అబ్బాయిలు ఆసక్తికరమైన ఉంటే, ఏమిటి, గూగుల్ సంకోచించకండి అత్యంత సమర్థవంతమైన సార్టింగ్ విధానాల. నేను ఉన్నాయి తెలియదు కొన్ని నిజంగా ఫన్నీ వాటిని, వంటి ఫంక్షన్ కొన్ని నిజంగా ఉంది ప్రజలు చేసే ఫన్నీ వాటిని. మరియు మీరు ఎలా ఆశ్చర్యానికి వారు ఎప్పుడూ ఆ యొక్క ఆలోచన. మీరు కొన్ని విడి కలిగి ఉంటే కాబట్టి, గూగుల్ సమయం, న, కొన్ని ఫన్నీ మార్గాలు ఏవి అలాగే people-- సమర్థవంతమైన ways-- ప్రజలు రకాల అమలు చేయగలిగారు. అలాగే. మరియు ఇక్కడ కేవలం ఒక సులభ కొద్దిగా చార్ట్ ఉంది. నేను ఆ క్విజ్ 0 ముందు, మీరు అన్ని తెలిసిన మీ గదిలో బహుశా ప్రయత్నిస్తున్న ఉంటుంది ఆ గుర్తు. కాబట్టి మీరు అబ్బాయిలు కోసం అక్కడ మంచిది. జస్ట్ made-- తర్కానికి మర్చిపోతే లేదు ఎందుకు ఆ సంఖ్యలు సంభవించే చేశారు. మీరు ఎల్లప్పుడూ కోల్పోయింది ఉంటే, కేవలం చేయడానికి ఖచ్చితంగా మీరు రకాల ఏమిటో తెలుసు. మరియు మీరు ద్వారా అమలు చేయవచ్చు మీ మనసులో వారితో ఎందుకు ఆ దొరుకుతుందని సమాధానాలు ఆ సమాధానాలు. అయితే సరే. కాబట్టి మేము తరలించడానికి వెళుతున్న చివరకు, శోధన, న. ఎందుకంటే మీరు యొక్క ఆ ఎవరు pset చదవాలని శోధించడం కూడా భాగం ఈ వారం యొక్క సమస్య సెట్లు. మీరు అమలు చేసే అడగబడతారు శోధనల రెండు రకాల. ఒక సరళ శోధన మరియు ఒక బైనరీ శోధన ఉంది. సో సరళ శోధన చాలా సులభం. మీరు కేవలం మూలకం శోధించడానికి మీరు మీరు పొందుటకు ఉంటే జాబితాను చూడటానికి. మీరు ద్వారా iterate ఉంటుంది. మరియు అది ఏదో సమానం, మీరు సరైన, దానిని తిరిగి చేయవచ్చు? కానీ ఒక మేము చాలా అని గురించి మాట్లాడటం ఆసక్తి బైనరీ శోధన, ఇది కుడి ఉంది విభజించి విధానం జయించటానికి ఇది డేవిడ్ ఉపన్యాసంలో ప్రదర్శన చేపట్టింది. ఫోన్ బుక్ ఉదాహరణ గుర్తు అతను జోడించాడు ఉంచుతుంది, అతను రకమైన ఇబ్బంది ఒకటి ఈ గత సంవత్సరం ఒక బిట్, మీరు సగం లో సమస్య విభజించి పేరు సగం లో, సగం లో, మళ్ళీ, మళ్ళీ, మీరు చూస్తున్న ఏమి కనుగొనేందుకు వరకు? మరియు మీరు పొందారు అలాగే ఆ యొక్క రన్టైమ్. మరియు మీరు చూడగలరు, అది గణనీయంగా మరింత సమర్థవంతంగా శోధన ఏ ఇతర రకం కంటే. కాబట్టి మేము గురించి ప్రయత్నించాడు విధంగా ఒక బైనరీ శోధన అమలు , మేము ఒక వ్యూహం కలిగి ఉంటే, సూచిక 0 6 ఏడు అంశాలు, మేము కుడి, మధ్యలో చూడవచ్చు క్షమించండి, మా ప్రశ్న ఉంటే మొదటి చూసేలా మేము ప్రశ్న కోరవలసి ఉంటే, చేస్తుంది శ్రేణి, 7 యొక్క మూలకం కలిగి సహజంగా, మానవులనే, మరియు కలిగి ఒక చిన్న శ్రేణి అటువంటి, ఇది మాకు సులభం అవును చెప్పటానికి. కానీ మార్గంలో ఒక బైనరీ అమలు శోధన మధ్యలో చూడండి ఉంటుంది. మేము ఇండెక్స్ 3 అని తెలుసు మధ్యతరగతి, మేము ఎందుకంటే ఏడు మూలకాల ఉన్నాయి తెలుసు. ఏం 7 2 ద్వారా విభజించబడింది? మీరు అదనపు 1 ఆఫ్ గొడ్డలితో నరకడం చేయవచ్చు. మీరు మధ్యలో 3 పొందాను. సో 7 సమానంగా 3 శ్రేణి? ఇది కుడి, కాదు? కానీ మేము తనిఖీలను జంట చేయవచ్చు. 3 7 కంటే తక్కువ లేదా శ్రేణి 7 కంటే ఎక్కువ 3 శ్రేణి? మరియు మేము అది 7 కంటే తక్కువ తెలుసు. కాబట్టి మేము తెలిసిన OH, అది తప్పక, ఆ ఎడమ భాగంలో ఉండకూడదు. మేము అది ఉండాలి తెలుసు కుడి భాగంలో, కుడి? కాబట్టి మేము కేవలం సగం శ్రేణి ఆఫ్ గొడ్డలితో నరకడం చేయవచ్చు. మేము కూడా లేదు ఇకపై అది చూడండి. మేము తెలుసు ఎందుకంటే మా సమస్య సగం మేము సమాధానం అని తెలుసు మా సమస్య యొక్క కుడి సగం. కనుక మనం ఇప్పుడు ఆ చూడండి. కాబట్టి ఇప్పుడు మేము చూడండి ఎడమ ఏమి మధ్యలో. అదే ఇండెక్స్ 5. మేము మళ్ళీ అదే చెక్ చేయండి మరియు మేము అది చిన్న అని చూడండి. కాబట్టి మేము ఆ ఎడమ చూడండి. ఆపై ఆ తనిఖీ. అర్రే విలువ వద్ద 7 సమానంగా ఇండెక్స్ 4? అది. కాబట్టి మేము నిజమైన తిరిగి ఎందుకంటే చేయవచ్చు మేము మా జాబితాలో విలువ కనుగొన్నారు. నేను పొందాను విధంగా చేస్తుంది అందరికి సమంజసం? అలాగే. నేను వంటి, బహుశా మీరు అబ్బాయిలు ఇస్తాము మూడు, నాలుగు నిమిషాల దొరుకుతుందని ఎలా ఈ pseudocode ఈ. నేను ఒక రాయడానికి మీరు అడిగిన కలెక్టరుకు తిరిగి ఆ విధి అని సెర్చ్ () ఒక విలువ, ఒక బూలియన్ విలువ ఆ వంటి సత్యం లేదా తప్పుడు మీరు దొరకలేదు ఉంటే నిజమైన విలువ, మీరు లేకపోతే తప్పు. ఆపై మీరు విలువ ఆమోదించింది మీరు విలువలు, దలచిన ఇవి శ్రేణి ఓహ్, నేను ఖచ్చితంగా చాలు తప్పు స్థానంలో. అలాగే. ఏమైనప్పటికీ, ఆ కలిగి ఉండాలి విలువలు కుడి కల్పించాయి. ఆపై పూర్ణాంకానికి n సంఖ్య ఆ శ్రేణి మూలకాల. ఎలా మీరు ప్రయత్నిస్తున్నారు గురించి ప్రయత్నించాడు ఆ సమస్య యొక్క pseudocode? నేను మీ వంటి guys ఇస్తాము మూడు నిమిషాల చేయాలని. లేదు, నేను only-- ఉందని నేను అనుకుంటున్నాను అవును, కుడి అప్ ఇక్కడ ఒక ఉంది. ప్రేక్షకులు: నేను? అండీ పెంగ్: అవును, నేను మీరు వచ్చింది. ఆ పని చేస్తుంది? చల్లని, సరే. అలాగే. అన్ని కుడి అబ్బాయిలు, మేము ఉన్నాము అది ధృవపు అన్నారు. అలాగే. కాబట్టి మేము ఈ మనోహరమైన పొందారు ఊహించుకోవటం అది n విలువలు కొంచెం శ్రేణి. నేను పంక్తులు డ్రా లేదు. కానీ మేము ఎలా చేస్తారు ఈ వ్రాయడానికి ప్రయత్నించడంలో? ఎవరైనా అనుకుంటుంది నాకు మొదటి లైన్ ఇవ్వాలని? మీరు నాకు ఇవ్వాలని ఉంటే ఈ pseudocode మొదటి రేఖ. ప్రేక్షకులు: [వినబడని] ప్రేక్షకులు: మీరు కావలసిన through-- iterate కు ప్రేక్షకులు: జస్ట్ మరొక లూప్? ప్రేక్షకులు: --for. అండీ పెంగ్: సో ఈ ఒక బిట్ గమ్మత్తైన. మీకు కావలసిన గురించి ఆలోచించండి ఈ లూప్ నడుస్తున్న ఉంచడానికి మళ్ళీ మరియు పైగా వరకు? ప్రేక్షకులు: [వినబడని] వరకు విలువ ఆ విలువకు సమానము. అండీ పెంగ్: ఖచ్చితంగా. కాబట్టి మీరు నిజంగా కేవలం వ్రాయండి చేయవచ్చు మేము మరింత అది సులభపరుస్తుంది. మేము కేవలం కుడి, కొంత లూప్ చేయవచ్చు? కాబట్టి మీరు లూప్ కలిగి మేము అది కాసేపు మనకు తెలుసు. కానీ ప్రస్తుతం, నేను వెళుతున్నాను ఏమి ద్వారా - "లూప్" చెప్పటానికి? లూప్ ఏమి until-- మా ముగిసిన పరిస్థితి? నేను విన్న అనుకుంటున్నాను. నేను ఎవరైనా అది నేను విన్నాను. ప్రేక్షకులు: విలువలు మధ్యలో సమానం. అండీ పెంగ్: మళ్ళీ చెప్పాను. వరకు లేదా, ప్రేక్షకులు: విలువ మీరు శోధిస్తున్న కోసం మధ్య విలువకు సమానంగా ఉంటుంది. అండీ పెంగ్: ఇది అక్కడ కాదు ఏం మాట్లాడాలి? ఏం మీరు శోధిస్తున్న విలువ ఈ శ్రేణి నిజానికి కాదు? ప్రేక్షకులు: మీరు 1 తిరిగి. అండీ పెంగ్: కానీ మేము ఏమి అనుకుంటున్నారు మేము ఒక పరిస్థితి కలిగి ఉంటే వరకు లూప్? అవును. ప్రేక్షకులు: కేవలం ఒక విలువ ఉంది వరకు? అండీ పెంగ్: మీరు లూప్ until-- కాబట్టి మీరు ఉన్నాము తెలుసు కుడి, ఒక గరిష్ట విలువ అన్నారు? మరియు మీరు చూడాలని తెలుసు కుడి ఒక నిమిషం విలువ, కలిగి? కూడా, ఏదో ఎందుకంటే నేను ముందు చెప్పడం మర్చిపోయిన వార్తలు అదేనా బైనరీ శోధన గురించి మీ అర్రే ఇప్పటికే క్రమబద్ధీకరించబడింది ఉంది. చేయడం మార్గమే లేదు ఎందుకంటే ఈ వారు యథేచ్ఛగా విలువలు అయితే. ఒకటి ఉంటే మీరు తెలియదు మరొకదాని కంటే పెద్దదిగా, కుడి? కాబట్టి మీరు తెలిసిన మీ మాక్స్ మరియు మీ mins కుడి ఇక్కడ ఉన్నారు? మీరు సర్దుబాటు కావడం ఉంటే మీ నిమిషాలు మరియు mid-- లో మీ మాక్స్ యొక్క కేవలం ఊహించుకోవటం తెలియజేయండి మీ మధ్య విలువ ఇక్కడే ఉంది మీరు ప్రధానంగా చూడాలని లూప్ మీ కనీస వరకు కుడి, మీ మాక్స్ అదే, లేదా గురించి మీ మాక్స్ మీ min అదే కాదు ఉంటే. కుడి? ఆ జరిగినప్పుడు ఎందుకంటే, మీరు తెలుసు మీరు చివరకు అదే విలువ హిట్ చేసిన. కాబట్టి మీరు మీ min వరకు లూప్ అనుకుంటున్నారు కంటే తక్కువ లేదా oops ఆలోచన సమానం కాదు కంటే లేదా సమాన తక్కువ, గరిష్టంగా around-- ఇతర మార్గం. ఆ సమంజసం తెలుసా? నేను ఆ హక్కు పొందడానికి కొన్ని ప్రయత్నాలు పట్టింది. కానీ లూప్ మీ మాక్స్ విలువ వరకు తప్పనిసరిగా దాదాపు తక్కువ కంటే ఎక్కువ లేదా మీ కనీస సమానంగా, కుడి? మీరు తెలుసు ఉన్నప్పుడు ఆ మీరు సంభాషణలలో చేసిన. ప్రేక్షకులు: ఎప్పుడు మీ గరిష్ట విలువ కనీస కంటే తక్కువ? అండీ పెంగ్: మీరు ఉంటే అది సర్దుబాటు ఇది మేము వెళ్తున్నారు ఏమిటి ఈ చేయడం. ఆ సమంజసం లేదు? కనీస మరియు గరిష్టంగా కేవలం మేము బహుశా అని పూర్ణాంకాల కావలసిన కొనసాగించడాన్ని సృష్టించడానికి మేము చూస్తున్న ఇక్కడ ట్రాక్. శ్రేణి ఉంది ఎందుకంటే సంబంధం లేకుండా మేము చేస్తున్న ఏమి. ఇలా, మేము నిజంగా భౌతికంగా కాదు ఉన్నాము కుడి, అర్రే ఆఫ్ chopping? మేము కేవలం సర్దుబాటు చేస్తున్నారు పేరు మేము చూస్తున్న. ఆ సమంజసం లేదు? ప్రేక్షకులు: అవును. అండీ పెంగ్: OK. మా లూప్ పరిస్థితి ఉంటే కాబట్టి, మేము ఈ లూప్ యొక్క లోపల ఏమి అనుకుంటున్నారు? మనం చెయ్యవలసింది కావాలనే వెళ్తున్నారు? సో ఇప్పుడు, మేము పొందారు ఒక మాక్స్ మరియు ఒక నిమిషం, కుడి, బహుశా ఇక్కడ ఎక్కడా అప్ సృష్టించింది. మేము బహుశా కావలసిన చూడాలని కుడి మధ్యతరగతి, కనుగొనేందుకు ఎలా? ఎలా మేము ఉంటాయని మధ్యలో పొందగలుగుతున్నారు? Mathematical-- ఏమిటి ప్రేక్షకులు: మాక్స్ ప్లస్ 2 ద్వారా విభజించబడింది min. అండీ పెంగ్: ఖచ్చితంగా. ఆ సమంజసం లేదు? మరియు మీరు అబ్బాయిలు ఎందుకు మేము చూస్తారు మేము ఈ చేశాడు ఎందుకు కేవలం use-- లేదు బదులుగా ఇలా n 2 ద్వారా విభజించబడింది? N క్రింది ఎందుకంటే ఇది అదే ఉండడానికి జరగబోతోంది. కుడి? కానీ మేము మా కనీస సర్దుబాటు మరియు గరిష్ట విలువలు, వారు మార్చడానికి చూడాలని. మరియు ఫలితంగా, మా మధ్య చాలా మార్చడానికి వెళ్తున్నారు. మేము కావలసిన ఎందుకు కాబట్టి ఆ ఇక్కడ ఈ కుడి చేయాలని. అలాగే. ఆపై, ఇప్పుడు ఆ మేము అవును, మా అనిపిస్తే. ప్రేక్షకులు: జస్ట్ శీఘ్ర ప్రశ్న చేసినప్పుడు మీరు min మరియు మాక్స్ చెప్పటానికి, మేము ఆ ఊహిస్తూ ఉంటాయి ఇది ఇప్పటికే క్రమబద్ధీకరించబడతాయి? అండీ పెంగ్: అవును, ఆ నిజానికి ఒక ఒక బైనరీ శోధన కోసం ముందుగా, మీరు కలిగి అది క్రమబద్ధీకరించబడతాయి నాకు తెలుసు. ఎందుకు విధమైన ఇది, మీరు వ్రాయడానికి మీ సమస్య మీ బైనరీ శోధన ముందు సెట్. అలాగే. కాబట్టి ఇప్పుడు మేము ఇక్కడ మా midpoint తెలిసిన ఏమి మీరు ఇక్కడ ఏమి అనుకుంటున్నారు? ప్రేక్షకులు: మేము పోల్చడానికి కావలసిన ఇతర ఒకటి ఆ. అండీ పెంగ్: ఖచ్చితంగా. కాబట్టి మీరు పోల్చి చూడాలని విలువ మధ్య, కుడి? మరియు ఆ ఏమి చెప్పడం లేదు మాకు మేము సరిపోల్చండి ఉన్నప్పుడు? మనం తర్వాత చెయ్యాలనుకుంటున్నారు? ప్రేక్షకులు: విలువ ఎక్కువగా ఉంటే మధ్యలో కంటే, మేము అది నరికి కోరుకుంటున్నాను. అండీ పెంగ్: ఖచ్చితంగా. విలువ పెద్దది చేస్తే మధ్యలో కంటే, మేము ఉన్నాము ఈ మార్చడానికి కావలసిన వెళుతున్న కనీస మరియు maxes, కుడి? మనం మార్చడానికి అనుకుంటున్నారు? మేము తెలిస్తే కాబట్టి విలువ ఎక్కడో ఇక్కడ, మేము మార్చడానికి మీరు ఏమి? మేము మా మార్చడానికి కావలసిన కనీస కుడి, మధ్య ఉండాలి? ఆపై వేరే, ఈ లో ఉంటే సగం మనం మార్చడానికి అనుకుంటున్నారు? ప్రేక్షకులు: మీ గరిష్ట. అండీ పెంగ్: అవును. ఆపై మీరు కేవలం చూడాలని కుడి వెతికినా ఉంచడానికి? ఇప్పుడు ఎందుకంటే, ఒక పునరుక్తి తర్వాత ద్వారా, మీరు ఇక్కడ ఒక గరిష్టంగా పొందారు. ఆపై మీరు ఒక మధ్య మళ్ళీ లెక్కించు చేయవచ్చు. ఆపై మీరు సరిపోల్చవచ్చు. మరియు మీరు కొనసాగించడాన్ని చూడాలని నిమిషాలు మరియు maxes వరకు తప్పనిసరిగా సంభాషణలలో. మీరు తెలుసు ఉన్నప్పుడు ఆ ముగింపునకు హిట్ చేసిన. మరియు గాని మీరు దొరకలేదు చేసిన లేదా మీరు ఆ సమయంలో లేదు. ఈ ప్రతి ఒక్కరి సమంజసం లేదు? అలాగే. ఈ చాలా ముఖ్యం మీరు చేస్తాము ఎందుకంటే మీ కోడ్ టునైట్ ఈ రాయడానికి. కానీ మీరు అబ్బాయిలు ఒక అందమైన మంచి కలిగి మీరు చేస్తున్న చేయాలి ఏం భావన ఇది మంచి ఉంది. అలాగే. కాబట్టి మనం ఏడు గురించి పొందారు నిమిషాల విభాగం వదిలి. కాబట్టి మేము గురించి మాట్లాడటానికి వెళుతున్న మేము చేస్తున్న అవుతారు ఈ pset. కాబట్టి pset రెండు విభజించటం విభజించబడింది. మొదటి సగం ఉంటుంది ఒక కనుగొనేందుకు అమలు మీరు ఒక సరళ శోధన వ్రాయండి, ఒక బైనరీ శోధన, మరియు ఒక సార్టింగ్ అల్గోరిథం. కాబట్టి ఈ మొదటి ఒక pset పేరు సమయం అని ఏమి మేము మీరు అబ్బాయిలు ఇస్తున్నారు ఉంటాం పంపిణీ కోడ్, కోడ్ ఇది మేము ముందు రాసిన, కానీ కేవలం ఆఫ్ కొన్ని ముక్కలు వదిలి మీరు వ్రాసే పూర్తి. మీరు ఈ చూడండి ఉన్నప్పుడు మీరు అబ్బాయిలు, కాబట్టి కోడ్, మీరు నిజంగా భయపడ్డాను చేసుకోగా ఉండవచ్చు. మీరు ahh, నేను కోరుకున్న చేస్తుంటే ఆ ఏమి తెలియదు, నేను, అని తెలుస్తోంది, తెలియదు కాబట్టి క్లిష్టమైన, ahh, విశ్రాంతి. అది సరే. స్పెక్ చదవండి. స్పెక్ సరిగ్గా మీకు వివరిస్తుంది ఈ కార్యక్రమాలు అన్ని చేస్తున్నావు. ఉదాహరణకు, generate.c ఒక కార్యక్రమం మీ pset తో వస్తాయి. మీరు దీన్ని తాకే లేదు, కానీ మీరు చేస్తున్న ఏమి అర్థం చేసుకోవాలి. మరియు generate.c, చేయుచున్నాడు అన్ని గాని యాదృచ్ఛిక సంఖ్యలు ఉత్పత్తి లేదా మీరు ఒక వలె, ఇది ఒక విత్తనం ఇవ్వగలిగిన అది తీసుకుంటుంది ఆ prearranged సంఖ్య, మరియు అది మరింత సంఖ్యలు ఉత్పత్తి. కాబట్టి ఒక నిర్దిష్ట మార్గం ఉంది generate.c అమలు దీనిలో మీరు కేవలం సంఖ్యల సమూహాన్ని చేయవచ్చు మీరు మీ ఇతర పద్ధతులపై పరీక్షించడానికి. కాబట్టి మీరు కోరుకుంటే, కోసం ఉదాహరణకు, మీ కనుగొనేందుకు పరీక్షించడానికి, మీరు generate.c అమలు కావాలో, , సంఖ్యల సమూహాన్ని ఉత్పత్తి ఆపై మీ సహాయకులు ఫంక్షన్ అమలు. మీరు ఎక్కడ మీ సహాయకులు ఫంక్షన్ నిజానికి భౌతికంగా కోడ్ వ్రాయడం. మరియు ఒక గ్రంధాలయం ఫైల్గా సహాయకులు అనుకుంటున్నాను మీరు ఆ కనుగొనేందుకు కాల్ రాస్తున్నాం. కాబట్టి helpers.c లోపల, మీరు చేస్తాము శోధించడం మరియు క్రమబద్ధీకరించేందుకు చేయండి. మరియు అప్పుడు మీరు తప్పనిసరిగా చూడాలని వాటిని కలిసి అన్ని చాలు. ఎలా స్పెక్ ఇత్సెల్ఫ్ ఆదేశ ఆ చాలు. మరియు మీరు లేదో పరీక్షించడానికి చేయగలరు లేదా మీ విధమైన మరియు శోధన పనిచేస్తున్నారు. కూల్. ఎవరైనా ఇప్పటికే ప్రారంభించారు మరియు ఎదురైన సమస్యల లేదా ప్రశ్నలు వారు ఈ తో ప్రస్తుతం ఉందా? అలాగే. ప్రేక్షకులు: వేచి. నేను ఒక ప్రశ్న కలిగి. అండీ పెంగ్: అవును. ప్రేక్షకులు: సో నేను చేయడం ప్రారంభించాడు helpers.c సరళ శోధన అది నిజంగా పని లేదు. కాని తర్వాత నేను మేము కేవలం కనుగొన్న దానిని తొలగించవచ్చు మరియు బైనరీ శోధన చేయాలి. అది పనిచేయదు ఉంటే అది పట్టింపు లేదు? అండీ పెంగ్: చిన్న సమాధానం లేదు ఉంది. కానీ నుండి మేము not-- ఉన్నాము ప్రేక్షకులు: ఎవరూ యొక్క నిజానికి తనిఖీ. అండీ పెంగ్: మేము ఎప్పుడూ ఉన్నాము చూడండి వెళుతున్న. కానీ మీరు బహుశా చేయాలనుకుంటున్నాము ఖచ్చితంగా మీ శోధన పనిచేస్తోంది. మీ సరళ ఎందుకంటే శోధన పని లేదు, అప్పుడు అవకాశాలు మీ బైనరీ ఉంటాయి శోధన అలాగే పని ఉండదని. మీరు ఇలాంటి కలిగి ఎందుకంటే రెండూ తర్కం. మరియు, అది నిజంగా ప్రాధాన్యత లేదు. సో మాత్రమే వాటిని మీరు తెరుద్దాము లేపింది మరియు బైనరీ శోధన ఉంటాయి. అవును. కూడా, పిల్లలు చాలా ఉన్నాయి helpers.c కంపైల్ ప్రయత్నిస్తున్న. మీరు నిజంగా అనుమతి లేదు అలా helpers.c ఎందుకంటే ఒక ప్రధాన చర్య లేదు. కాబట్టి మీరు మాత్రమే ఉండాలి నిజానికి కంపైల్ కాల్స్ కనుగొనేందుకు ఎందుకంటే, ఉత్పత్తి మరియు కనుగొనేందుకు helpers.c మరియు దానిలోని విధులు. ఆ డీబగ్గింగ్ చేస్తుంది కాబట్టి బట్ ఒక నొప్పి. కానీ మేము ఏమి కలిగి ఉంది. ప్రేక్షకులు: మీరు కేవలం కుడి, అన్ని తయారు? అండీ పెంగ్: మీరు కేవలం చెయ్యవచ్చు అవును, అలాగే అన్ని చేస్తాయి. అలాగే. కాబట్టి ఆ పరంగా అంతే pset, మీరు అన్ని చేయాలని అడుగుతున్నారు. మీరు ఏవైనా ప్రశ్నలు ఉంటే, అనుభూతి విభాగం తరువాత నాకు చెప్పండి ఉచితం. నేను 20 నిమిషాల, వంటి, ఇక్కడే ఉంటాం. మరియు అవును, pset యొక్క నిజంగా ఆ చెడు కాదు. మీరు అబ్బాయిలు సరి ఉండాలి. ఈ కేవలం మార్గదర్శకాలను అనుసరిస్తాయి. రకం తార్కికంగా, జ్ఞానం కలిగి, ఏమి తప్పక జరుగుతున్న మరియు మీరు జరిమానా ఉంటాం. చాలా భయపడ్డాను డోంట్. కోడ్ చాలా ఉంది ఇప్పటికే అక్కడ వ్రాసిన. మీరు లేకపోతే చాలా భయపడ్డాను డోంట్ ఆ అన్ని అర్థం అర్థం చేసుకోవాలి. ఇది చాలా వార్తలు, అది పూర్తిగా మంచిది. మరియు కార్యాలయం గంటల వరకు వస్తాయి. మేము మీరు పరిశీలించి సహాయం చేస్తాము. ప్రేక్షకులు: అదనపు తో విధులు, మేము ఆ అప్ చూడండి చెయ్యాలి? అండీ పెంగ్: అవును, ఆ కోడ్ ఉన్నాయి. 15 యొక్క సగం లో ఇది ఇప్పటికే మీరు కోసం వ్రాయబడినది. కాబట్టి ఆ విధులు ఇప్పటికే కోడ్ లో. YEP. అయితే సరే. Well, శుభాకాంక్షలు. ఇది ఒక విసుగుగా రోజు. సో ఆశాజనక మీరు అబ్బాయిలు చాలా ఫీల్ లేదు లోపల ఉంటున్న మరియు కోడింగ్ గురించి చెడు.