Ai trecut de întrebarea algoritmului de interviu? Învățarea întrebărilor despre algoritmi necesită prea mult timp? Nu problema ta! Înainte de aceasta, nicio metodă de învățare algoritmică nu ar putea fi atât de simplă și eficientă. Este nevoie de doar trei pași pentru a deveni un maestru al algoritmului: primul pas este să citești întrebarea; Al doilea pas este să redai animația, să faci referire la subtitrări și să înțelegi. ideile și codurile; Al treilea pas este de a citi, analiza și rezuma;
Crearea unei aplicații de diagramă de animație a algoritmului provine din experiențele personale ale multor programatori care de multe ori au nevoie să revizuiască algoritmii ori de câte ori își schimbă locul de muncă. Procesul de revizuire a acestor algoritmi implică de obicei analizarea diferitelor soluții online, multe dintre acestea încorporând imagini animate sau diagrame schematice. Aceste forme de reprezentare sunt mai eficiente și mai rapid de înțeles decât doar textul. Cu toate acestea, au devenit evidente anumite limitări ale resurselor existente, inclusiv lipsa de interactivitate în animații, incapacitatea de a modifica datele atunci când studiezi și provocările asociate cu accesibilitatea mobilă.
Motivat de dorința de a îmbunătăți experiența de învățare, dezvoltatorul s-a angajat să creeze 70 de animații diferite în cadrul aplicației. Scopul principal al acestei aplicații este de a servi ca instrument de învățare care ajută utilizatorii să înțeleagă rapid conceptele algoritmului și codul. Deși aplicația oferă o experiență de învățare vizuală și interactivă, nu permite utilizatorilor să trimită sau să execute cod; introducerea codului pe un computer rămâne necesară pentru o experiență de învățare completă.
În organizarea conținutului aplicației, dezvoltatorul a ales să nu aranjeze întrebările despre algoritm după numerele de identificare LeetCode. În schimb, au clasificat întrebările în trei categorii principale: liste legate, șiruri, matrice și arbori binari; backtracking, algoritmi lacomi, programare dinamică și divide-and-cuquer; împreună cu o secțiune separată pentru sortare. Fiecare categorie este împărțită în continuare în funcție de dificultate – ușoară, medie și grea – permițând utilizatorilor să se concentreze pe anumite domenii de cunoștințe în mod succesiv, încurajând în același timp învățarea aprofundată a conceptelor teoretice.
Aplicația reflectă, de asemenea, experiențele anterioare de învățare ale dezvoltatorului, în special provocările cu care se confruntă atunci când se confruntă cu algoritmii de sortare. Deoarece sortarea a fost percepută inițial ca un subiect dificil, o clasificare specifică pentru aceasta a fost desemnată pentru începători, pentru a facilita o mai bună înțelegere. Această abordare structurată își propune să ajute utilizatorii să navigheze sistematic prin subiecte complexe într-un mod care să se alinieze cu cadrele educaționale tradiționale.
Pentru a îmbunătăți interacțiunea dintre animație și cod, aplicația încorporează mai multe funcții bine gândite. Un aspect cheie este funcția de evidențiere a codului, care sincronizează animația cu execuția codului prin evidențierea fiecărei linii de cod pe măsură ce animația corespunzătoare progresează. În plus, pentru a completa elementele vizuale, este inclusă o funcție de subtitrare pentru a oferi explicații scurte în timpul fiecărei etape de animație. Aplicația include, de asemenea, funcționalitate de redare și resetare pentru fiecare algoritm, permițând utilizatorilor să randomizeze cazurile de testare cu un buton de resetare, simplificând și mai mult procesul de învățare și sporind implicarea utilizatorului.
De ce creați o aplicație de diagramă de animație a algoritmului. ?
La fel ca mulți programatori, trebuie să pregătesc mult timp pentru a perfecționa algoritmul de fiecare dată când schimb locul de muncă. Foarte bine, în procesul de periere a întrebărilor, trebuie mai întâi să citești soluția. De asemenea, citesc o mulțime de soluții de probleme de la băieți mari pe Internet și îmi place mai ales să citesc analize de algoritm cu imagini în mișcare sau diagrame schematice, ceea ce este mai rapid decât citirea textului. În acest proces, au fost găsite și câteva probleme, precum: animația nu este interactivă și nu poate fi întreruptă; datele sunt moarte și nu pot fi modificate; nu este convenabil să studiezi pe telefonul mobil etc.
Am văzut câteva animații bune la început și am avut un impuls puternic să le implementez în aplicație cu cod nativ de mai multe ori. De data aceasta, în sfârșit, m-am hotărât și am făcut 70 de animații dintr-o singură mișcare.
Înțeleg că poziționarea acestei aplicații este un instrument care ne poate ajuta să înțelegem rapid ideile și codurile de algoritm, să ajutăm memoria și să îmbunătățim eficiența învățării. Dar aici nu puteți trimite, nu puteți executa codul și codul trebuie încă introdus pe computer pentru a se simți mai bine.
De ce nu este aranjat în ordinea codului leetcode număr?
În prezent, întrebările algoritmului sunt clasificate în trei blocuri majore:
- listă legată, șir, matrice, arbore binar;
- Backtracking, lacomă, programare dinamică, împărțire și cuceriți;
- Sortați și clasificați separat.
În cadrul fiecărei categorii, dificultatea este împărțită în ușoară, medie și grea.
Mai întâi, clasificați structurile de date și algoritmii separat și învățați în funcție de punctele de cunoaștere. De exemplu, vă puteți concentra pe învățarea structurilor de arbore binar sau a algoritmilor de programare dinamică, astfel încât antrenamentul cu saturație concentrată să contribuie la îmbunătățirea eficienței învățării. Structura datelor este pe primul loc și urmează algoritmul, care este, de asemenea, aranjat în ordinea în care învățăm cunoștințele teoretice.
În ceea ce privește algoritmii, în prezent sunt aranjate patru tipuri: backtracking, greedy, programare dinamică și divide-and -conquer.
Când am învățat structurile de date și algoritmii în urmă cu mulți ani, am intrat pentru prima dată în contact cu diverși algoritmi de sortare. În acel moment, am simțit că sortarea era prea dificilă și am fost foarte impresionat, așa că am făcut o clasificare separată de sortare pentru începători.
Gândindu-mă la cum să combin animația și codul și alte probleme interactive
- În procesul de învățare a algoritmilor de unul singur, înțeleg adesea ideile, dar nu pot înțelege codurile, iar multe coduri din explicațiile textului nu au comentarii. A vedea asta este o mare durere de cap. Prin urmare, atunci când ne gândim la interacțiunea cu aplicația, funcția de evidențiere a codului este special concepută, ceea ce înseamnă că fiecare linie de cod va fi evidențiată pe măsură ce animația progresează. În acest fel, animația se execută, codul este evidențiat și arată mișto.
- Deși animația este ușor de înțeles, mai are nevoie de câteva explicații scurte, așa că funcția „subtitrare” este concepută sub animație. De fiecare dată când este executat pasul corespunzător, va fi afișată explicația corespunzătoare.
- Redarea și resetarea animației, fiecare pagină de algoritm are o funcție de redare, deci cum să pregătiți cazuri de testare? Pentru a simplifica conceptul de cazuri de testare, este proiectat un buton de „resetare”, ceea ce înseamnă că cazurile de testare sunt aleatorii. Când doriți să schimbați un set de date, faceți clic pe resetare.