Skillnaden mellan en algoritm och ett program kan sammanfattas enligt följande:
algoritm:
* Definition: En steg-för-steg, väl definierad procedur eller uppsättning instruktioner för att lösa ett specifikt problem eller utföra en viss uppgift. Det är en logisk plan eller en plan.
* Fokus: "Vad" att göra. Den beskriver * -metoden * eller * logiken * för att lösa ett problem.
* Representation: Kan uttryckas i olika former:
* Naturligt språk (som engelska)
* Pseudocode (informell, mänsklig läsbar kod)
* Flödesscheman (diagram)
* Matematisk notation
* körbar? Nej. En algoritm är konceptuell. Det är inte något du direkt kan köra på en dator.
* Abstraktion: Mer abstrakt. Den fokuserar på kärnstegen i lösningen utan att vara upptagen med specifika programmeringsspråkssyntax eller hårdvaruinformation.
* Exempel:
* algoritm för att hitta det största antalet i en lista:
1. Antag att det första numret i listan är det största.
2. Iterera genom resten av listan.
3. Jämför det för varje nummer med det nuvarande "största".
4. Om det aktuella numret är större, uppdatera "största".
5. Efter att ha iterat genom hela listan är "största" resultatet.
Program:
* Definition: En konkret implementering av en algoritm på ett specifikt programmeringsspråk (t.ex. Python, Java, C ++). Det är en uppsättning instruktioner som en dator kan förstå och köra.
* Fokus: "Hur" att göra det. Den beskriver de * exakta * stegen att vidta med hjälp av syntaxen och semantiken för ett programmeringsspråk.
* Representation: Skrivet på ett specifikt programmeringsspråk.
* körbar? Ja. Ett program sammanställs (eller tolkas) i maskinkod som en dator kan köra.
* Abstraktion: Mindre abstrakt. Det handlar om de specifika detaljerna i programmeringsspråket, biblioteken och hårdvaran.
* Exempel:
* python -program för att hitta det största numret i en lista (implementera ovanstående algoritm):
`` `python
def find_lest (siffror):
Om inte siffror:# Hantera tomt listfodral
returnera ingen
Största =siffror [0]
för antal i antal:
Om nummer> Största:
största =nummer
återvända största
my_list =[10, 5, 20, 8, 15]
största_number =find_largest (my_list)
utskrift (f "Det största antalet är:{största_number}")
`` `
Analogi:
Tänk på det så här:
* algoritm: Ett recept för en tårta. Den beskriver ingredienserna och stegen att ta (blanda, baka, etc.).
* Program: Den faktiska kakan som görs genom att följa receptet och använda specifika köksverktyg och ingredienser.
Nyckelskillnader i en tabell:
| Funktion | Algoritm | Program |
| --------------- | ------------------------------------------------------------------------------------------------------- |
| Definition | Steg-för-steg problemlösningsförfarande | Implementering av en algoritm i kod |
| fokus | Vad man ska göra (logik) | Hur man gör det (implementering) |
| Representation | Naturligt språk, pseudokod, flödesscheman | Programmeringsspråkkod |
| körbar? | Nej | Ja |
| abstraktion | Hög | Låg |
| Beroende | Språkoberoende | Språkberoende |
Sammanfattningsvis:
En algoritm är * idén * eller * planen * att lösa ett problem. Ett program är * konkreta insikten * av den planen, skriven på ett specifikt språk som en dator kan förstå och köra. Du behöver en algoritm innan du kan skriva ett program för att implementera det.