1 00:00:00,000 --> 00:00:00,860 2 00:00:00,860 --> 00:00:02,300 >> ZAMYLA CHAN: Nu ska vi titta på sort. 3 00:00:02,300 --> 00:00:07,420 Sortera tar en matris och heltalet n, vilket är storleken på matrisen. 4 00:00:07,420 --> 00:00:09,700 Nu finns det olika typer av slag. 5 00:00:09,700 --> 00:00:13,030 Och du kan titta på några kortfilmer för demos och förklaringar. 6 00:00:13,030 --> 00:00:16,239 Retur typ för vår sorteringsfunktionen är ogiltig. 7 00:00:16,239 --> 00:00:20,230 Så det betyder att vi inte kommer att återvända någon array från slag. 8 00:00:20,230 --> 00:00:24,810 Vi ska faktiskt går att förändra mycket array som leddes in oss. 9 00:00:24,810 --> 00:00:28,690 Och det är möjligt eftersom arrayer passeras genom hänvisning i C. 10 00:00:28,690 --> 00:00:31,560 >> Nu kommer vi att se mer om detta senare, men den väsentliga skillnaden mellan 11 00:00:31,560 --> 00:00:35,890 passerar i något som liknar ett heltal och passerar i en array är att när 12 00:00:35,890 --> 00:00:39,620 du skickar in ett heltal, är C bara går för att göra en kopia av det heltal 13 00:00:39,620 --> 00:00:41,120 och skicka det till funktionen. 14 00:00:41,120 --> 00:00:45,190 Den ursprungliga variabeln ändras inte när funktionen är slutförd. 15 00:00:45,190 --> 00:00:49,160 Med en array, å andra sidan, är det inte att göra en kopia och du kommer 16 00:00:49,160 --> 00:00:54,610 faktiskt redigera mycket array själv. 17 00:00:54,610 --> 00:00:57,930 >> Så en typ av slag är urvals sort. 18 00:00:57,930 --> 00:01:01,410 Valet sortera fungerar genom att starta vid början och sedan iterera 19 00:01:01,410 --> 00:01:03,480 över och hitta det minsta elementet. 20 00:01:03,480 --> 00:01:07,380 Och sedan byta det minsta element med den första. 21 00:01:07,380 --> 00:01:09,350 Och då du flyttar till det andra elementet. 22 00:01:09,350 --> 00:01:14,170 Hitta nästa minsta elementet och sedan byta det med det andra elementet 23 00:01:14,170 --> 00:01:17,760 i arrayen, eftersom den första element är redan sorterade. 24 00:01:17,760 --> 00:01:22,030 Och så då fortsätter för varje elementet i att identifiera den minsta 25 00:01:22,030 --> 00:01:24,106 värde och byta ut den. 26 00:01:24,106 --> 00:01:29,320 För jag är lika med 0, den allra första elementet, till n minus 1, du kommer att 27 00:01:29,320 --> 00:01:33,280 jämföra varje nästa värde efter det och hitta indexet 28 00:01:33,280 --> 00:01:34,480 av det minsta värdet. 29 00:01:34,480 --> 00:01:39,190 När du hittar det minsta värdet index, du kan byta det värdet av array 30 00:01:39,190 --> 00:01:42,610 minimum och array i.. 31 00:01:42,610 --> 00:01:46,420 >> En annan typ av slag som du kan genomföra är bubbla sortera. 32 00:01:46,420 --> 00:01:51,040 Så bubbla sortera itererar över listan, jämföra intilliggande element och 33 00:01:51,040 --> 00:01:54,380 byta de delar som är i fel ordning. 34 00:01:54,380 --> 00:01:59,040 Och detta sätt den största elementet kommer bubbla till slutet. 35 00:01:59,040 --> 00:02:04,730 Och listan sorteras en gång inte mer delar har bytts. 36 00:02:04,730 --> 00:02:08,590 >> Så de är två exempel på slag algoritmer som du kan genomföra för 37 00:02:08,590 --> 00:02:09,889 fyndet programmet. 38 00:02:09,889 --> 00:02:14,110 När du är klar sorterar och du har gjort sökningen, är du klar. 39 00:02:14,110 --> 00:02:16,380 Mitt namn är Zamyla, och detta är CS50. 40 00:02:16,380 --> 00:02:23,616