Portál AbcLinuxu, 10. května 2025 01:34

Dotaz: Knihovna pro rychlé nalezení mediánu v C

2.12.2010 20:38 Thunder.m | skóre: 35 | blog: e17
Knihovna pro rychlé nalezení mediánu v C
Přečteno: 514×
Odpovědět | Admin

Potřeboval bych co nejrychleji vypočítat medián 1D pole (floating point), zkoušel jsem funkce

qsort - velmi pomalá, cca 2 minuty navíc pro můj program

gsl_sort + gsl_stats_median_from_sorted_data - pomalá, cca 40 vteřin navíc

Existuje něco rychlejšího? Algoritmus quickselect mi vycházel ještě výrazně pomalejší.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.12.2010 20:44 fsgsfg
Rozbalit Rozbalit vše Re: Knihovna pro rychlé nalezení mediánu v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to znamy algoritmus.. je napsany treba ve Wirth: Algorithms+data = programs nebo (myslim) v druhem dile the Art of... narocnost ma asi n log(n).
2.12.2010 23:12 Martin Tůma | skóre: 39 | blog: RTFM | Praha
Rozbalit Rozbalit vše Re: Knihovna pro rychlé nalezení mediánu v C

Složtost O(nlog(n)) má i seřazení pole (O(nlog(n))) a výběr prostředního prvku (O(1)). Složitost výpočtu medianu je ale pouze O(n), viz wikipedia.

Každý má právo na můj názor!
2.12.2010 20:55 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Knihovna pro rychlé nalezení mediánu v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ještě jsem zapomněl uvést že nynější náročnost není vysoká, vpodstatě výpočet průměru všech hodnot pole, ale rád bych použil medián, protože je přesnější.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.