Schrijfalgoritmen kunnen overweldigend zijn, zelfs voor de meest ervaren ontwikkelaar. Velen van hen onthouden alle verschillende benaderingen van een bepaald probleem. Maar wat als we in plaats daarvan kijken naar een begeleid diagram van hoe we naar een probleem kunnen kijken, zodat we het kunnen oplossen?
Dit artikel onderzoekt algoritmen: wat zijn ze, waar worden ze voor gebruikt? en hoe u algoritmen kunt leren schrijven.
Wat is een algoritme?
Een algoritme is een reeks instructies. Als je een algoritme vergelijkt met een recept, kun je zien hoe een algoritme eruitziet:
Hamburgerrecept
Bereidingstijd: 10 min
Invoer:
Ingrediënten []- een lijst met artikelen die denaamvan het artikel en dehoeveelheidnoodzakelijke bevatten em>
Routebeschrijving []- een lijst met strings die de stappen beschrijven om de hamburgers af te maken en te presenteren aan hongerige eters
Bijvoorbeeld:["Gooi het vlees weg en verdeel het in 8 verschillende secties ‚"," Rol de secties in een bal ‚"," Maak elke bal plat tot een schijfvorm. Alle schijven moeten dezelfde grootte hebben, "etc.] em>
Opbrengst: 8 porties
Een algoritme, wanneer het in code is geschreven, gaat ervan uit dat u ten minste één programmeertaal en de populaire methoden, de gegevensstructuren en het gebruik ervan kent. Het concept is vergelijkbaar met hoe een recept ervan uitgaat dat je bepaalde kookmethodes kent en hoe je keukenaccessoires moet gebruiken.
Een algoritme heeft een invoer en een uitvoer. Het resultaat (groot probleem oplossen) komt voort uit het onderweg oplossen van kleine problemen.
Waar dient een algoritme voor?
Algoritmen worden overal gebruikt omdat ze problemen oplossen. computer- en webontwikkeling ze worden gebruikt bij het schrijven van code om de computer te vertellen iets te doen.
Als we bijvoorbeeld een lijst met namen hadden, kunnen we een sorteeralgoritme gebruiken zoals bubble sort naar sorteer namen op voor- of achternaam. We kunnen ook een binair zoekalgoritme gebruiken om naar een naam in dezelfde lijst te zoeken. Dit zijn slechts enkele van de standaardalgoritmen waarvan u kunt profiteren.
Houd er rekening mee dat je nooit echt klaar bent met het leren schrijven van algoritmen na het voltooien van een cursus & ndash; je wordt alleen maar beter. We zullen in het volgende gedeelte een manier zien om je dichter bij het schrijven van algoritmen te brengen.
Hoe u een algoritme leert schrijven: stap voor stap
Hier zijn de aanbevolen stapsgewijze tips voor het leren schrijven van algoritmen.
1. Leer een programmeertaal Java, JavaScript en Python zijn allemaal populaire talen ‚Äã‚Ä ãgebruikt om computeralgoritmen te schrijven. Kies een taal en leer deze van binnen en van buiten.
Neem deze concepten op in uw begrip van de taal die u kiest:
Functies - functies anoniem, benoemd en van hogere orde
Objecten - in staat zijn om objecten te maken, objecten te manipuleren en objectmethoden te gebruiken
Arrays of lijsten - in staat zijn om arrays / lijsten te maken, deze te manipuleren en de bijbehorende methoden te gebruiken
Loop - beide traditioneel voor loops en arrays / geavanceerde lijstmethoden
Klassen
2. Datastructuren
U moet een goede beheersing van gegevensstructuren hebben om uw algoritmen efficiënter te maken. Zorg ervoor dat u weet waar elke gegevensstructuur voor dient en hoe deze werkt.
Tabellen / lijsten. Leer hoe u een array / lijst manipuleert en wat de hoofdletter O is van de verschillende insert-, delete- en get-methoden. Het is belangrijk om te weten hoe verborgen arrays / lijsten werken om de temporele en ruimtelijke complexiteit van een algoritme te kunnen begrijpen.
Gelinkte lijst . Het doel van een gekoppelde lijst kunnen uitleggen en hoe deze verschilt van een array. Je zou de Big O ook moeten kennen van zijn gebruikelijke methoden.
Hash Table. Begrijp hoe een hashtabel werkt en wat de grote O is bij het werken met een hashtabel.
Stapel / code . De verschillen en overeenkomsten tussen een stapel en een wachtrij kunnen bespreken en welke datastructuren kunnen worden gebruikt voor dit speciale type abstracte gegevens.
Bomen . Het gebruik van bomen om de uitvoeringstijd van een algoritme te verkorten is een goede methode. Binaire bomen zijn een zeer populair hulpmiddel bij het manipuleren van algoritmen.
Grafieken. Wat afbeeldingen kunnen vertegenwoordigen en waarom afbeeldingen kunnen worden gebruikt bij het bouwen van een algoritme.
3. Schrijfalgoritmen: het proces voor het oplossen van problemen
Je hebt een basisprogrammeertaal en voldoende gegevensstructuren geleerd om aan de slag te gaan. Gefeliciteerd ! Ga aan de slag.
Begin klein. Het is belangrijk om de vier concepten in George Pòlya`s verhandeling over het oplossen van problemen te begrijpen (zie Bronnen . Ook hier zijn enkele stappen toegevoegd om ook de algemene aanpak te analyseren:
George Pòlya`s gids voor het oplossen van problemen
Het probleem begrijpen
Waar ben je naar op zoek?
Neem het probleem en leg het uit met je eigen woorden - probeer iemand uit te leggen dat ze technisch niet goed zijn.
Voer trefwoorden voor het probleem in om je te helpen een basisplan op te stellen - geen code. Alleen de stappen die nodig zijn om een antwoord te krijgen.
li>
Herhaal dit plan om een code-oplossing te maken.
Als u geen oplossing kunt vinden, gaat u terug naar stap nr. Zorg ervoor dat u het probleem begrijpt. Geeft u de juiste uitvoer terug? Is is er iets dat je misschien hebt gemist in de coderingsprompt?
Wat is de Big O-classificatie van uw oplossing? Er is iets dat u kunt doen om van de oplossing een efficiënter algoritme te maken met verwijzing naar ruimtelijke complexiteit of tijdscomplexiteit ?
4. Begin klein
Het begint met een basiszoekalgoritme dat een reeks of array doorloopt om een item te vinden. Als het item niet wordt gevonden, wordt false geretourneerd. Als het wordt gevonden, retourneert het waar.
Ontwikkel dit algoritme voor beginners en gebruik andere gegevensstructuren om te zien hoe anderen een ander proces nodig hebben. Probeer de items te sorteren om efficiëntere zoekalgoritmen te gebruiken.
Gebruik sites om algoritmen te oefenen, zoals die vermeld in de sectie bronnen, om uw vaardigheden te verbeteren.
5. Overschakelen naar moeilijkere algoritmen
strong>
Na verschillende iteraties kunt u overschakelen naar moeilijkere algoritmen. Op dit punt zou u enkele van de sorteeralgoritmen opnieuw moeten kunnen maken, inclusief bellensorteren en samenvoegen. Binair onderzoek zou ook deel moeten uitmaken van uw dagelijkse programmeerervaring.
Blijf sites gebruiken om algoritmen te oefenen om uw vaardigheden te verbeteren. Test jezelf met iets moeilijker gelabelde problemen om te zien hoe het je vergaat.
De beste cursussen en training over algoritmen
Iedereen leert een beetje anders. Hier zijn enkele van de beste algoritmische cursussen en trainingen die beschikbaar zijn. Sommige zijn betaald, maar er zijn ook gratis. Deze lijst is in willekeurige volgorde.
Online algoritmencursussen
Hier zijn enkele van de beste algoritmecursussen die online beschikbaar zijn:
Verdelen om te heersen, sorteren en zoeken en willekeurige algoritmen
Grafisch zoeken, kortere paden en datastructuren
Hebzuchtig algoritme, bomen met minimale dekking en dynamische planning
Korte routes opnieuw bekeken, NP-Complete problemen en wat te doen met hun onderwerp
4 maanden
Vereisten: De cursus is taalonafhankelijk, maar gaat ervan uit dat je ten minste één programmeertaal, basisgegevens en voldoende wiskunde kent om te weten wat de bewijzen zijn.
Certificaat: $ 49 / maand tot voltooiing; Audit: GRATIS
Professor Tim Roughgarden van Stanford University geeft graduate cursussen in algoritmen op Coursera. Deze cursussen behandelen vrijwel alles wat je nodig hebt om een goed begrip van algoritmen te hebben, zodat je het goed kunt doen in technische interviews.
Certificaat geverifieerd: $ 149; Geen certificaat: GRATIS
Deze cursus maakt deel uit van het IIT Bombay Fundamentals of Computer Science XSeries-programma. Onderwerpen die hier worden behandeld, zijn onder meer sorteren en zoeken, getalalgoritmen, tekenreeksalgoritmen, geometrische algoritmen en grafische algoritmen.
Vereisten: ten minste één programmeertaal; De cursus gebruikt Python in de voorbeelden
GRATIS
Dit is een gratis spoedcursus over algoritmen door Michael Littman van Udacity. Gebruik de Six Degrees of the Kevin Bacon Phenomenon om te laten zien hoe algoritmen werken. Denk aan de zes graden van scheiding - er is gezegd dat ze allemaal zes of minder sociale banden van elkaar zijn. Gebruik hetzelfde concept, maar dan met de films en acteurs van Kevin Bacon.
Deze reeks FreeCodeCamp-oefeningen zal u helpen slagen door kleine problemen op te lossen voordat u doorgaat naar de lastige. Oefeningen in uw eigen tempo gebruiken het FreeCodeCamp-leerplatform om uw code te testen.
Zelfstudie, voornamelijk gebaseerd op tekst en voorbeelden
Vereisten: JavaScript, Python, C ++ of Java
GRATIS
In deze gratis cursus worden visuele en videohulpmiddelen gebruikt om te illustreren hoe algoritmen werken. De geïntegreerde code-omgevingen maken de gebruikerservaring behoorlijk goed. Mogelijke oplossingen zijn inbegrepen.
Algoritmeboeken
Er zijn verschillende boeken die u kunnen helpen op uw reis om een betere algoritmeschrijver te worden. Veel hiervan zijn verkrijgbaar bij een plaatselijke boekhandel en op Amazon.
Grokking Algorithms is een van de beste boeken over gedrukte algoritmen. Gemaakt door een kunstenaar die softwareontwikkelaar is geworden, hanteert Bhargava een geïllustreerde benadering om u te helpen algoritmen intuïtief te begrijpen of te gebruiken. De oefeningen aan het einde van elk hoofdstuk helpen de inhoud van het boek te consolideren.
Door George T. Heineman, Gary inch, Stanley Selkow
figuur>
Dit boek gebruikt een modelgebaseerde benadering van ontwerpen om leer wanneer u gedolven algoritmen moet implementeren. Je leert de oplossingen te coderen en vervolgens te verbeteren met behulp van geavanceerde datastructuren. De oplossingen zijn in Ruby, Java, C ++ en C, maar zijn gemakkelijk te vertalen naar uw favoriete talen.
De vierde editie van de Sedgewick en Wayne-algoritmen is een fantastische introductie in de wereld van algoritmen. De auteurs beoordelen meer dan 50 van de belangrijkste algoritmen om u op te laten vallen.Princeton-docenten hebben online een ontwikkeld cursus die deze tekst goed aanvult.
Bron
Shop
Learn programming in R: courses
$
Best Python online courses for 2022
$
Best laptop for Fortnite
$
Best laptop for Excel
$
Best laptop for Solidworks
$
Best laptop for Roblox
$
Best computer for crypto mining
$
Best laptop for Sims 4
$
Latest questions
NUMPYNUMPY
psycopg2: insert multiple rows with one query
12 answers
NUMPYNUMPY
How to convert Nonetype to int or string?
12 answers
NUMPYNUMPY
How to specify multiple return types using type-hints
12 answers
NUMPYNUMPY
Javascript Error: IPython is not defined in JupyterLab