Regner ca med at have max 100 rows * ca 1 million Det vil side 1 million dokumanter der skal gennemlæses.. For hver dokument arbejder jeg med max et array på 100 rows.
Er det for meget, eller tror du jeg skal bruge noget a'la quicksort?
Unskyld.. Det er mig der ikke lige foklarer det ordentligt.
Jeg har en applikation der skal åbne et dokumant af gangen. Det dokumant indeholder et array på [100,2] Derefter sloetter jeg alt, og åbner endnu et array osv osv. Så mit array blir ca [100,2] per gang.
Nu nævnte petermjensen quick-sort, så bare lige for at få det slået fast, så er quick-sort ikke nødvendigvis specielt hurtig... Rent faktisk kører den i worst-case O(n^2) - måske ikke lige noget at råbe hurra for... worst-case er når det der skal sorteres allerede er sorteret.
Hvis man vil benytte quick-sort er det derfor vigtigt, at man benytter randomized quick-sort, som giver den ønskede sorteringstid på O(n log n).
Hvis du altid benytter f.eks. midterste element kan der vel også forekomme situationer hvor den kører O(n^2) - så er worst-case dog ikke når den er sorteret. Hvis du derimod vælger et random pivot, vil du generelt få den bedste udførselstid.
Korrekt. Men sandsynligheden for worst-case er ikke nær så stor ved et random pivot som ved et fast pivot. Rent faktisk kan det bevises, at sandsynligheden for O(n log n) ved randomized quick-sort er ret høj.
Desværre er jeg ikke specielt god til sandsynlighedsteori, så jeg kan nok ikke lige komme med den helt store afhandling her... Under alle omstændigheder kan vi nok godt blive enige om, at der findes en del naive implementationer på nettet af quick-sort, som benytter første/sidste element som pivot - og det var sådan set mest det jeg ville advare mod :-)
Tja, du har nok ret - det var i hvert fald også sådan jeg umiddelbart ville mene det skulle være... Men de der sandsynlighedsteoretikere kommer til tider med nogle ret mærkelige påstande som man ikke umiddelbart lige forstår, og som man kun kan få til at passe hvis man bruger deres egne formler :-)
F.eks. kan de bevise at uheld altid kommer 2,7 (PI) efter hinanden... så det med at ét uheld sjældent kommer alene, mener de at kunne bevise er sandt - de kommer simpelthen 2,7 efter hinanden.
Desuden er det ofte sådan, at hvis de propper et tilfældigt tal ind i en algoritme kører den hurtigere (af grunde som er total ukendte for mig)...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.