Pagini: 1 [2]   În jos
  Imprimă  
Ajutor Subiect: Problema saptamanii - Interclasare  (Citit de 12703 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #25 : August 10, 2010, 01:47:38 »

Ziceam ca e voie sa folosim memorie suplimentara O(1). Daca ai o lista inlantuita iti trebuie ceva memorie pentru pointerii listei nu?
Memorat
bdragu
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #26 : August 11, 2010, 11:06:10 »

Sigur enuntul este bun?
Am dubii ca acea complexitate nu depinde si de m. De exemplu sa luam cazul particular m=n^3 si numerele sa fie:
n^3+1 n^3+2 ... n^3+n | 1 2 ... n^3. In acest sir niciun numar nu se afla in pozitia lui finala, deci ar trebui ca din O(n^2) operatii sa rearanjam O(n^3) numere cu consum constant de memorie. Asta nu se poate!!! Inclin sa cred ca acea complexitate ar trebui sa fie O(n*m) sau asa ceva.
Memorat
marius135
Echipa infoarena
Client obisnuit
*****

Karma: 19
Deconectat Deconectat

Mesaje: 56



Vezi Profilul
« Răspunde #27 : August 11, 2010, 11:19:56 »

@ Dragu Ionut-Bogdan O(N^2) se referea la O( (N + M)^2).
Memorat
Cosmin1490
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 17



Vezi Profilul
« Răspunde #28 : August 11, 2010, 12:52:29 »

Inserarea unui element intr-un vector merge in timp liniar.
Si daca vrem sa inseram elementele ce fac parte din M in N atunci vine N*M nu?
Cum stim ca vectorii sunt deja sortati la o singura parcurgere a lui N si M inserari e gata.
Si in cazu asta vine N+N*M care e mai putin decat (N+M)^2 si cu Memorie O(1).
Se incadreaza? sau gresesc la rationament?
[LE]: ca sa fie mai clar: cand zic inserare...  ma refer la asezarea lui pe pozitia finala, pt ca practic elementele sunt deja in vector si trebuie doar sa "dam mai incolo" cu o pozitie elementele, sa aiba loc cel care trebuie asezat, "dand mai incolo" suprascriem pozitia originala iar in golul lasat copiem dintr-un aux .
« Ultima modificare: August 11, 2010, 14:59:41 de către Balan Radu Cosmin » Memorat
blasterz
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« Răspunde #29 : August 11, 2010, 15:26:02 »

tot O(n^2) e ... deci nu se incadreaza... trebuie sa gasesti un algoritm care sa aiba o clasa inferioara lui O(n^2)
(exemple: O(nlogn), O(n sqrt n) , O(n log^2n)...)
Memorat
crushack
De-al casei
***

Karma: 23
Deconectat Deconectat

Mesaje: 108



Vezi Profilul
« Răspunde #30 : August 12, 2010, 01:36:18 »

Am o idee , daca pe masura ce dau de numere <= N le mut la inceputul vectorului ?
Un fel de:


Cod:
p=0;
for (i=0;i<N+M;i++)
   if (v[i]<=N)
   {
       schimb(v[p],v[i]);
       p++;
    }

Prin schimb se intelege interschimbare.
Cam ce complexitate e ?

Modificat de Moderator: Foloseste tag-ul [ code ] ... [ / code ] atunci cand postezi cod sursa
« Ultima modificare: August 12, 2010, 08:21:26 de către Mircea Dima » Memorat
skyel
Nu mai tace
*****

Karma: 29
Deconectat Deconectat

Mesaje: 263



Vezi Profilul
« Răspunde #31 : August 12, 2010, 08:03:08 »

Cred ca metoda propusa de tine nu numai ca nu sorteaza, dar nu modifica vectorul, in contextul in care prin v te referi la v(i), iar toate numerele sunt <= N. Daca sunt distribuite random(respectand cerinta), il face praf... Think

L.E.: Pe viitor ai putea sa folosesti tagul de code ca sa nu iti mai considere [ i ] ca fiind tag-ul de inceput pentru italic text.
« Ultima modificare: August 12, 2010, 08:16:52 de către Ghitulete Razvan » Memorat
Robybrasov
Strain
*

Karma: 3
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #32 : August 14, 2010, 10:39:52 »

Se considera memorie neconstanta la un algoritm recursiv? Ma refer aici la stiva in care urca si coboara recurenta, care depinde totusi de N.
Memorat
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines