AngelicaBGG / ASDClab

0 stars 0 forks source link

Notes #2

Open AntonC9018 opened 4 months ago

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L21 Folosește ori size_t ori int64_t dacă vrei un tip pe 64 de biți. long long asta-i "a relic of the past" -- o decizie proastă din C.

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L33 Funcție polimorfică pentru asta. Ca și la lab 2.

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L36 N-a să ai nevoie de asta dacă o să folosești o funcție polimorfică pentru calculare a timpului. O să ai prosto un return atunci.

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L39 Bubble sort trece prin mai puține elemente în următoarele iterații, că la fiecare etapă elementul maxim ajunge la sfârșit.

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L60 Nu face o copie. Aici trebuie să fie un std::move probabil.

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L64 Aici tot o să fie std::move. Faci capec cât de multe copii de acele șiruri redundante. Codul ăsta o să fie mai performant în JS dacă îl scrii atât de neglijent față de aceste chestii :)

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L68 Tot move.

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L157-L179 Codul de partajat printr-un fișier comun.

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L208-L212 Aici tot se repetă, folosește o funcție polimorfică, sau măcar pune acestea în niște scope-uri separate.

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab7/sort.cpp#L206 Sortezi tablouri deja sortate după invocarea primului algoritm, trebuie să le copiezi din nou.

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab5/linked_list_stack.cpp#L3-L12 te rog, de partajat codul ăsta

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab5/linked_list_stack.cpp#L48 De ce îl copiezi, dacă imediat după asta îl ștergi? std::move

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab5/linked_list_stack.cpp#L41 Și scoate studentul din interfața, ca să nu te joci voobshe cu copiile / mișcare, dar prosto să lucrezi cu ultimulul stundet print pointer.

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab5/linked_list_stack.cpp#L36-L37 Student&& și std::move

AntonC9018 commented 4 months ago

&& este important aici că folosești std::string

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab5/queue_linked_list.cpp#L38 Aici tot

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L58 Și aici

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L91 Aici poți la head != nullptr cu un assert, că altfel într-un fel nu-i legal să invoci acea funcție. Și atunci n-o să ai nevoie de a verifica node != nullptr în al doilea if.

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L98 Aici tot cred că se permite printr-un assert, că nu trebuie să fie legal asta.

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L106 Dacă nu faci assert-uri, atunci invoca asta numai dacă ai schimbat lista. Că acum dacă invocarea este invalidă, nu primești nici o eroare, dar starea listei o să fie modificată poliubomu, nu-i corect.

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L109 Ai ținut cont de length aici, poți mai simplu să realizezi asta

AntonC9018 commented 4 months ago

https://github.com/AngelicaBGG/ASDClab/blob/e97e95eb542cddbbf0921befdaa8a4ee0bd553df/lab3/linkedlist.cpp#L119-L122 Ori una, ori alta. Ambele abordări n-are sens să realizezi. În aceaași funcție

AntonC9018 commented 4 months ago

Adaugă despre analiza rezultatelor, și o să fie 7, cu codul așa cum este. Dacă fixezi codul, și adaugi analiza, o să fie 8.

AntonC9018 commented 4 months ago

Încă nu ai trecut prin toate chestiile de la data trecută.