C: válogatás Analysis

szavazat
7

Van egy csomó különböző rendezési algoritmusok, amelyek mind a következő aláírás:

void <METHOD>_sort_ints(int * array, const unsigned int ARRAY_LENGTH);

Vannak olyan vizsgálatok lakosztályok válogatás, amely jól jönne a célból, hogy az empirikus összehasonlítás?

A kérdést 27/08/2009 04:52
a forrás felhasználó
Más nyelveken...                            


4 válasz

szavazat
10

Ez a részletes vitát , valamint összekapcsolása számos kapcsolódó weboldalak valószínűleg hasznos, azt is leírja számos hasznos bemenő adatokat tesztelésére rendezési algoritmusok (lásd a linkelt oldalon okokból). Összegezve:

  1. Teljesen véletlenszerűen átrendeződött tömb
  2. Már rendezve tömb
  3. Már rendezve fordított sorrendben tömb
  4. Láncfűrész tömb
  5. Array azonos elemekből
  6. Már rendezett tömbben N permutációk (N 0,1-10% a méret)
  7. Már rendezve tömb fordított sorrendben tömb N permutációk
  8. Az adatok, amelyek normális eloszlás két példányban (vagy közeli) gombokkal (stabil rendezés esetén)
  9. Pszeudo-adatok (napi értékeit S & P500 index vagy más egy évtizede lehet egy jó teszt itt beállított, ezek ről Yahoo.com)
Válaszolt 02/09/2009 11:10
a forrás felhasználó

szavazat
7

A végleges tanulmány szortírozás Bob Sedgewick „s doktori értekezés. De van egy csomó jó információt közölt algoritmusok tankönyvek, és ezek az első két helyen azt keresni tesztsorozat és módszertan. Ha már volt egy újabb természetesen tudni fogja, mint én; múltkor volt egy természetesen a legjobb módszer az volt, hogy quicksort le válaszfalak 12-es betűmérettel, majd futtassa behelyezés sort az egész tömb. De a választ változik olyan gyorsan, mint a hardver.

Jon Bentley programozás Perls könyvek néhány egyéb információk a válogatás.

Gyorsan felkap egy tesztsorozat, amely

  • véletlen egész szám

  • Rendezett egészek

  • Fordított rendezve egészek

  • Rendezett egész, enyhén zaklatott

Ha emlékezetem nem csal, ezek a legfontosabb esetekben egyfajta algoritmus.

Ha keres, hogy rendezni tömböket, amelyek nem illeszkednek cache, akkor meg kell mérni cache hatásokat. valgrindakkor hatásos, ha lassú.

Válaszolt 27/08/2009 05:22
a forrás felhasználó

szavazat
3

sortperf.py egy jól kiválasztott kíséret benchmark teszt esetek és arra használták, hogy támogassák az esszé talált itt , és az a fajta timsort Python lo, hogy sok évvel ezelőtt. Megjegyzendő, hogy végre-valahára Java lehet mozgó timsort is, köszönhetően Josh Block (lásd itt ), úgyhogy elképzelni általuk írt saját verzióját a benchmark teszt esetek - azonban nem tudok könnyen talál referencia hozzá. (timsort, stabil, adaptív iteratív természetes mergesort változat különösen alkalmas arra, hogy nyelvek összehasonlító-to-objektum szemantika, mint a Python és Java, ahol az „adatmozgatás” viszonylag olcsó [[mivel minden, ami valaha is mozgatásra referenciák aka pointerek nem foltok a határtalan méretű ;-)]], de összehasonlításokat lehet viszonylag költséges `mivel nincs felső határa a komplexitása egy összehasonlító függvényt -, de aztán ez igaz bármilyen nyelven, ahol válogatást lehet testre keresztül egyéni összehasonlítást vagy a kulcs-extrakciós function`).

Válaszolt 06/09/2009 02:15
a forrás felhasználó

szavazat
3

Ez az oldal mutatja a különböző rendezési algoritmusok segítségével négy csoportra oszthatók: http://www.sorting-algorithms.com/

Amellett, hogy a négy csoport Norman válasza az ellenőrizni kívánt rendezési algoritmusok gyűjteménye számok, amelyek néhány hasonlóság a számok:

  • Minden egész egyediek
  • Értéke azonos, az egész gyűjtemény
  • Kevés az egyedi kulcsok

Megváltoztatása az elemek száma a gyűjtemény is egy jó gyakorlat ellenőrizze minden algoritmust 1K, 1M, 1G stb, hogy mik a memória következményeit ez az algoritmus.

Válaszolt 02/09/2009 10:51
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more