Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pa:curs-optional:sd-si-debugging [2016/03/26 12:46]
cosmin.dragomir [Problema 3]
pa:curs-optional:sd-si-debugging [2022/03/07 16:13] (current)
darius.neatu [Debugging]
Line 1: Line 1:
 ====== Crash course: Debugging și Structuri de Date ====== ====== Crash course: Debugging și Structuri de Date ======
  
 +===== Debugging =====
 +Pe parcursul semestrului,​ vă poate fi util să știți cum se folosește un debugger pentru a găsi probleme într-un mod rapid. Vă recomandăm articolul [[https://​ocw.cs.pub.ro/​courses/​programare/​tutoriale/​debugging | PC@Debugging]] pentru a vă reaminti de cum folosim GDB atât din CLI cât și prin intermediul unui IDE.
 ===== Obiective crash course ===== ===== Obiective crash course =====
   *Reacomodarea cu structuri de date esențiale implementării algoritmilor   *Reacomodarea cu structuri de date esențiale implementării algoritmilor
   *Însușirea abilităților de folosire a unor structuri de date din STL, respectiv Java API   *Însușirea abilităților de folosire a unor structuri de date din STL, respectiv Java API
   *Însușirea unor deprinderi de bază legate de procesul de debugging, incluzând ințelegerea principalelor surse de erori din Java și C++   *Însușirea unor deprinderi de bază legate de procesul de debugging, incluzând ințelegerea principalelor surse de erori din Java și C++
 +
 +===== Curs structuri de date =====
 +<​HTML>​
 +  <iframe src="​https://​docs.google.com/​file/​d/​1htowLsDHuURZVaSsTzfOTgeYnGezCVppJiWRFw_Lrhk/​preview"​ width="​640"​ height="​480"></​iframe>​
 +</​HTML>​
 +===== Curs debugging =====
 +<​HTML>​
 +  <iframe src="​https://​docs.google.com/​file/​d/​1qfagP_JEoR5mpyIaZ-YWcGrfj7v3zh43VY_22cUMe-w/​preview"​ width="​640"​ height="​480"></​iframe>​
 +</​HTML>​
 +
 ===== Structuri de Date ====== ===== Structuri de Date ======
  
Line 52: Line 64:
 Exemplu: Pentru ''​N = 3'',​ avem următoarele 6 permutări în ordine lexicografică:​ ''​1 2 3, 1 3 2, 2 1 3, 2 3 1, 3 1 2, 3 2 1''​. Exemplu: Pentru ''​N = 3'',​ avem următoarele 6 permutări în ordine lexicografică:​ ''​1 2 3, 1 3 2, 2 1 3, 2 3 1, 3 1 2, 3 2 1''​.
 </​note>​ </​note>​
 +
 +===== Extra =====
 +<note tip>
 +Pentru aceste probleme nu există schelet de cod. Vă încurajăm să discutați cu asistenții despre soluția lor.
 +</​note>​
 +
 +==== Problema 1 ====
 +Dându-se un vector de N elemente, se dorește să se afle dacă există duplicate aflate la distanța maxim K. Două elemente se află la distanța maxim K dacă ele se află la pozițiile i și j, iar ''​|i - j| ≤ K''​.
 +
 +<note tip>
 +Exemplu: Pentru vectorul ''​{1,​ 4, 1, 6, 4, 6, 1}''​ și ''​K = 2'',​ avem duplicatele ''​(1,​1) (pe pozițiile 0 și 2) și (6, 6) (la pozițiile 3 și 5)''​.
 +</​note>​
 +
 +Hint: Complexitate dorită O(N). Extra hint: Gandiți-vă cum puteți extinde problema aflării duplicatelor dintr-un vector.
 +
 +==== Problema 2 ====
 +Dându-se un vector de N elemente, se dorește să se afle dacă există duplicate fuzzy aflate la distanța maxim K. Două elemente se află la distanța maxim K dacă ele se află la pozițiile i și j, iar ''​|i - j| ≤ K''​. Două elemente A și B sunt duplicate fuzzy dacă |A - B| < 3.
 +
 +<note tip>
 +Exemplu: Pentru vectorul ''​{1,​ 4, 1, 6, 4, 6, 1}''​ și ''​K = 2'',​ avem duplicatele fuzzy ''​(1,​1) (pe pozițiile 0 și 2), (6, 4) (pe pozițiile 3 și 4), (4, 6) (pe pozițiile 3 și 4) și (6, 6) (la pozițiile 3 și 5)''​.
 +</​note>​
 +
 +Hint: Complexitate dorită O(N). Extra hint: Folosiți ideea de bază din Bucket Sort :).
  
 ===== Feedback ===== ===== Feedback =====
pa/curs-optional/sd-si-debugging.1458989187.txt.gz · Last modified: 2016/03/26 12:46 by cosmin.dragomir
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0