vad är en algoritm?
Inom datavetenskap, en algoritm är ett väl definierat steg-för-steg-förfarande eller en uppsättning instruktioner utformade för att utföra en specifik uppgift eller lösa ett visst problem. Det är i huvudsak ett recept för en dator att följa.
Tänk på det som ett matlagningsrecept. Ett recept beskriver ingredienserna (inmatning), stegen för att förbereda dem (process) och den slutliga maträtten (utgång). En algoritm gör samma sak för en dator.
Nyckelegenskaper för en algoritm:
* Väl definierat: Varje steg måste vara tydligt och entydigt. Det finns inget utrymme för tolkning.
* ändlig: Algoritmen måste avslutas efter ett begränsat antal steg. Det kan inte springa för alltid.
* effektiv: Varje steg måste vara praktiskt körbar. Datorn måste kunna utföra instruktionen.
* Input: En algoritm kan ta noll eller fler ingångar.
* Utgång: En algoritm måste producera en eller flera utgångar (eller utföra vissa åtgärder som ett resultat).
* Deterministic: Med tanke på samma ingång bör algoritmen alltid producera samma utgång (såvida det inte innebär slumpmässighet, vilket fortfarande är ett definierat beteende).
Exempel:Hitta det maximala numret i en lista
Låt oss illustrera med ett enkelt exempel:Hitta det största antalet i en lista med siffror.
Problem: Med tanke på en lista med siffror, hitta det största numret i listan.
algoritm:
1. Input: En lista med siffror (t.ex. `[5, 2, 9, 1, 5, 6]`).
2. Initialisering: Anta att det första numret i listan är det största numret. Förvara den i en variabel som kallas `max_number '.
3. iteration:
* Gå igenom varje återstående nummer i listan, en efter en.
* För varje nummer kan du jämföra det med den aktuella `max_number '.
* Om det aktuella numret är större än "max_number", uppdatera `max_number" för att vara det aktuella numret.
4. Utgång: Efter att ha itererat genom hela listan kommer `max_number` att hålla det största antalet i listan. Returnera `max_number`.
illustrativt genomgång med listan `[5, 2, 9, 1, 5, 6]`:
1. `input`:` [5, 2, 9, 1, 5, 6] `
2. `max_number =5` (initialiserad med det första numret)
3. iteration:
* Aktuellt nummer:`2`. Är `2> 5 '? Nej. "Max_number" kvarstår "5".
* Aktuellt nummer:`9`. Är `9> 5 '? Ja. `Max_Number` blir` 9 '.
* Aktuellt nummer:`1`. Är `1> 9 '? Nej. `Max_Number 'kvarstår` 9'.
* Aktuellt nummer:`5`. Är `5> 9 '? Nej. `Max_Number 'kvarstår` 9'.
* Aktuellt nummer:`6`. Är `6> 9 '? Nej. `Max_Number 'kvarstår` 9'.
4. `output`:` 9`
Python -kodimplementering:
`` `python
def find_max (siffror):
"" "
Hittar det största antalet i en lista med siffror.
Args:
Siffror:En lista med siffror.
Returnerar:
Det största antalet i listan.
"" "
Om inte siffror:
returnera ingen # hantera tomt listfodral
max_number =siffror [0] # initialisera med det första numret
för antal i antal:
Om nummer> max_number:
max_number =nummer
returnera max_number
Exempel Användning:
my_list =[5, 2, 9, 1, 5, 6]
största_number =find_max (my_list)
utskrift (f "Det största antalet är:{största_number}") # utgång:det största antalet är:9
`` `
Förklaring av Python -koden:
* Funktionen `find_max ()` tar en lista med siffror som input.
* Den kontrollerar först om listan är tom. Om det är, returnerar det "ingen".
* Det initialiserar `max_number 'till det första elementet i listan.
* Det itereras sedan genom resten av listan med en "för" -slinga.
* Inuti slingan jämför den varje "nummer" med den nuvarande "max_number".
* Om "nummer" är större än "max_number", uppdaterar det "max_number" till värdet på "nummer".
* Slutligen returnerar det värdet på `max_number '.
Varför är detta en algoritm?
* Väl definierat: Varje steg (initialisering, jämförelse, uppdatering) är tydligt definierad.
* ändlig: Loopen itereras genom listan ett fast antal gånger (listans längd).
* effektiv: Operationerna (jämförelse, tilldelning) är grundläggande operationer som en dator enkelt kan utföra.
* Input: Det tar en lista med siffror som input.
* Utgång: Det producerar det största antalet som utgång.
* Deterministic: Med tanke på samma lista med siffror kommer den alltid att producera samma största antal.
Detta enkla exempel illustrerar det grundläggande konceptet för en algoritm. Algoritmer kan vara mycket mer komplexa och involvera sofistikerade datastrukturer och matematiska tekniker. Men den underliggande principen förblir densamma:en väldefinierad procedur för att lösa ett specifikt problem.