•skull
Client obisnuit

Karma: 17
Deconectat
Mesaje: 75
|
 |
« Răspunde #50 : Martie 03, 2010, 14:29:53 » |
|
Am obtinut imbunatatiri semnificative la timpi dar tot la 80 pct am ramas  .
|
|
|
Memorat
|
|
|
|
•alexandru92
|
 |
« Răspunde #51 : Martie 03, 2010, 14:49:15 » |
|
Fa functiile iterativ 
|
|
|
Memorat
|
|
|
|
•skull
Client obisnuit

Karma: 17
Deconectat
Mesaje: 75
|
 |
« Răspunde #52 : Martie 03, 2010, 15:03:26 » |
|
Din moment ce recursivitatea nu apeleaza aceeasi functie de 2 ori(pentru a pierde timp), de ce ar merge mai rapid iterativ?  In plus e mult mai elegant recursiv. 
|
|
|
Memorat
|
|
|
|
•popoiu.george
|
 |
« Răspunde #53 : Martie 03, 2010, 15:27:46 » |
|
@skull prin recursivitate programul lucreaza cu stiva, si de aici s-ar putea sa fie mai incet programul.
|
|
|
Memorat
|
|
|
|
•zsee
Strain
Karma: 0
Deconectat
Mesaje: 6
|
 |
« Răspunde #54 : Martie 03, 2010, 15:28:07 » |
|
ms mult Cosmin! Nu stiu cum nu am mai auzit de asta.... dar e foarte fain, a taiat timpul de executie la jumate http://infoarena.ro/job_detail/409234
|
|
|
Memorat
|
|
|
|
•skull
Client obisnuit

Karma: 17
Deconectat
Mesaje: 75
|
 |
« Răspunde #55 : Martie 03, 2010, 15:43:47 » |
|
Am folosit settextbuf si pt. fisierul de iesire si deja au aparut timpi mult mai buni. Merci Cosmin & Alexandru.  LE: Functia settextbuf "pacaleste" doar compilatorul folosit pe infoarena sau si pe cele de la oji/oni? Ca doar o asemenea imbunatatire de timp poate face diferenta.
|
|
« Ultima modificare: Martie 03, 2010, 15:51:00 de către Mihai Alexandru »
|
Memorat
|
|
|
|
•zsee
Strain
Karma: 0
Deconectat
Mesaje: 6
|
 |
« Răspunde #56 : Martie 03, 2010, 18:42:35 » |
|
cred ca la oni compilatorul e tot fpc si ar trebui sa mearga 
|
|
|
Memorat
|
|
|
|
•alexandru92
|
 |
« Răspunde #57 : Martie 03, 2010, 19:15:04 » |
|
Am folosit settextbuf si pt. fisierul de iesire si deja au aparut timpi mult mai buni. Merci Cosmin & Alexandru.  LE: Functia settextbuf "pacaleste" doar compilatorul folosit pe infoarena sau si pe cele de la oji/oni? Ca doar o asemenea imbunatatire de timp poate face diferenta. IDE-ul de la oji/oni e Free Pascal, deci da 
|
|
|
Memorat
|
|
|
|
•Cosmin
|
 |
« Răspunde #58 : Martie 03, 2010, 20:40:56 » |
|
@alexandru free pascal nu e ide, ci e compilator.
settextbuf nu parseaza citirea ci in loc sa citeasca caracter cu caracter citeste o portiune de marimea bufferului, asta face citirea de pe disc mai eficienta.
|
|
|
Memorat
|
|
|
|
•ana.z
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #59 : Iunie 26, 2010, 09:45:40 » |
|
#include<stdio.h> long n,j,i,aux,v[50001]; int main() { freopen("algsort.in","r",stdin); freopen("algsort.out","w",stdout); scanf("%ld",&n); for(i=1;i<=n;i++) scanf("%ld",&v[i]); for(i=1;i<n;i++) for(j=i+1;j<=n;j++) if(v[j]<v[i]) { aux=v[i]; v[i]=v[j]; v[j]=aux; } for(i=1;i<=n;i++) printf("%ld ",v[i]); return 0; }
 Imi da TLE-uri cam pe jumatate din teste!Nu inteleg de ce.... 
|
|
« Ultima modificare: Iunie 26, 2010, 14:29:34 de către Andrei Grigorean »
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #60 : Iunie 26, 2010, 10:07:01 » |
|
Din cate vad eu acea sortare nu esti "optima" ... Iti trebuie o sortare in O ( N logN ) .
|
|
« Ultima modificare: Ianuarie 03, 2011, 10:50:05 de către Simoiu Robert »
|
Memorat
|
|
|
|
•PlayLikeNeverB4
|
 |
« Răspunde #61 : Octombrie 25, 2010, 00:15:36 » |
|
Chiar nu inteleg de ce nu iau 100... sau macar punctaj mai mare. http://infoarena.ro/job_detail/495408?action=view-sourceEdit: Nu conteaza. Construiam heap-ul gresit. Faceam upheap de jos in sus. Stupid, stupid me.  P.S.: Quicksort sux !
|
|
« Ultima modificare: Octombrie 25, 2010, 11:42:30 de către George Marcus »
|
Memorat
|
|
|
|
•c_sebi
Client obisnuit

Karma: 24
Deconectat
Mesaje: 62
|
 |
« Răspunde #62 : Ianuarie 02, 2011, 21:38:58 » |
|
La multi ani! A incercat cineva sortare pe liste inlantuite? Am incercat un Merge sort pe liste simplu inlantuite, dar am luat 80p. Vreo idee cum as putea imbunatati solutia? http://infoarena.ro/job_detail/518727Mersi!
|
|
|
Memorat
|
|
|
|
•brucewillis
Strain
Karma: 9
Deconectat
Mesaje: 8
|
 |
« Răspunde #63 : Ianuarie 02, 2011, 22:29:25 » |
|
din cate stiu eu nu poti sorta eficient liste.
|
|
|
Memorat
|
|
|
|
|
•SpiderMan
|
 |
« Răspunde #65 : Mai 03, 2011, 20:24:33 » |
|
In sursa Cpp, incearca sa inlocuiesti unsigned long long cu int si vezi rezultatele  .
|
|
|
Memorat
|
|
|
|
|
•Laura_M
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #67 : Decembrie 30, 2011, 13:29:21 » |
|
Buna! Am trimis urmatoarea problema si imi spune ca fisierul de iesire e corupt si o chestie cu killed by signal 11. Imi puteti spune ce nu e in regula? #include <iostream> #include <fstream>
using namespace std;
int a[100], n;
void interclasare (int i, int m, int j) { int b[100]; int x=i; int k=1; int y=m+1; while ((x<=m)&&(y<=j)) if (a[x]<a[y]) b[k++]=a[x++]; else b[k++]=a[y++]; while (x<=m) b[k++]=a[x++]; while (y<=j) b[k++]=a[y++]; int t=i; for (k=i; k<=(j-i)+1; k++) {a[t]=b[k]; t++;} }
void div_imp (int i, int j) { if (i<j) {int m=(i+j)/2; div_imp(i,m); div_imp(m+1,j); interclasare(i,m,j);} }
int main() { int a[100], p=0, q=0; fstream f("algsort.in", ios::in); while (!f.eof()) {p++; f>>a[p]; q++;} for (p=1; p<q; p++) cout<<a[p]<<" "; f.close(); div_imp(1,n); fstream g("algsort.out", ios::out); for (p=1; p<q; p++) g>>a[p]; g.close(); return 0; }
job #654373 Editat de admin: Foloseste tagul "code" cand postezi surse.
|
|
« Ultima modificare: Decembrie 31, 2011, 13:27:55 de către Andrei Grigorean »
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #68 : Decembrie 30, 2011, 13:53:00 » |
|
Din cate vezi, nu ai 100 elemente, ai 500.000  . Pune limita 500005 si e suficient  .
|
|
|
Memorat
|
|
|
|
•Laura_M
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #69 : Decembrie 31, 2011, 11:22:26 » |
|
Multumesc, SpiderMan; imi scapase asta. Dar imi spune in continuare ca fisierul de iesire e corupt. Nu inteleg de ce. Vreo sugestie?
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #70 : Decembrie 31, 2011, 11:35:05 » |
|
for (p=1; p<q; p++) g>>a[p]; Aici nu cumva e <= q in for ? Daca nu e asta, o sa iau codul sa ma uit pe el  .
|
|
|
Memorat
|
|
|
|
•Laura_M
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #71 : Decembrie 31, 2011, 11:40:20 » |
|
Am modificat si da aceeasi eroare. Ai putea sa te uiti pe ea putin, te rog? 
|
|
|
Memorat
|
|
|
|
•PlayLikeNeverB4
|
 |
« Răspunde #72 : Decembrie 31, 2011, 13:04:22 » |
|
- Variabila n ti-e neinitializata (ma rog, e 0, dar nu cred ca asta iti doresti) - Din cate vad tu introduci in sirul de numere si numarul de pe prima linie a fisierului (adica numarul care ar trebui sa reprezinte numarul de elemente ale sirului). Poti citi acel numar separat si apoi citirea sirului cu un for.
|
|
|
Memorat
|
|
|
|
•Laura_M
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #73 : Decembrie 31, 2011, 17:48:50 » |
|
Multumesc, merge acum 
|
|
|
Memorat
|
|
|
|
•reking
Strain
Karma: 3
Deconectat
Mesaje: 39
|
 |
« Răspunde #74 : Iunie 29, 2013, 13:28:02 » |
|
Deci cel mai eficient algoritm de sortare este 'Merge sort' 
|
|
|
Memorat
|
|
|
|
|