Article View: pl.comp.lang.c
Article #267896Re: Ciemna strona C++
From: Maciej Piechotka
Date: Thu, 10 Jan 2008 18:47
Date: Thu, 10 Jan 2008 18:47
39 lines
3236 bytes
3236 bytes
On Thu, 10 Jan 2008 16:31:12 +0000, Sektor van Skijlen wrote:
>> > Z ciekawości, zajrzałem co ma Java. Java posiada algorytm
>> > java.util.Collections.sort() (w dwóch wersjach, jedna z
>> > komparatorem). Pierwszym argumentem jest LISTA (nie zakres
>> > elementów). W żadnej klasie dziedziczącej po *.Collections nie jest
>> > ona przesłonięta.
>> >
>> > Co więcej, *.Collections.sort() ma gwarancję, że jest stabilny.
>> > Ciekawe, dlaczego?
>
>> Bo nie dawali wersji niestabilnej?
>
> Zgadza się. A dlaczego nie dali wersji niestabilnej?
Jeśli mnie pamięć nie myli to java.util.Collections.sort() kopjuje całą
listę do tablicy, sortuje tablicę i wstawia do listy.
Uniwersalny stable sort:
template <class iterator>
void my_sort(iterator from, iterator to) {
typename iterator::difference_type distance = std::distance(from,
to);
typename iterator::value_type *refs = new typename
iterator::value_type[distance];
std::copy(from, to, refs);
std::stable_sort(&refs[0], &refs[distance]);
std::copy(&refs[0], &refs[distance], from);
delete[] refs;
}
Problem - kopiuje wszystko do osobnej tablicy (dodatkowy narzut +
dodatkowa pamięć), ale da się.
Pozdrawiam
--
I've probably left my head... somewhere. Please wait untill I find it.
Homepage (pl_PL): http://uzytkownik.jogger.pl/
(GNU/)Linux User: #425935 (see http://counter.li.org/)
Technical Details
Message-ID:
<6q5i55-pt.ln1@router.piechotka.com.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!nnrpd.internetia.plReferences:
<fghgeo$spf$1@nemesis.news.tpi.pl> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl> <fimb7n$80v$1@bozon2.softax.pl> <fj5k6j$r3e$1@kujawiak.man.lodz.pl> <fj68ei$vbo$1@bozon2.softax.pl> <fjmo4o$a5r$1@kujawiak.man.lodz.pl> <fjouia$gr3$1@bozon2.softax.pl> <fjpmln$o6q$1@kujawiak.man.lodz.pl> <fjtv6o$kc$1@bozon2.softax.pl> <fkea3q$lup$1@kujawiak.man.lodz.pl> <fkobo3$mdl$1@bozon2.softax.pl> <fm5h8g$nbs$1@kujawiak.man.lodz.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!nnrpd.internetia.pl From: Maciej Piechotka <uzytkownik2@gmail.com> Newsgroups: pl.comp.lang.c Subject: Re: Ciemna strona C++ Date: Thu, 10 Jan 2008 19:47:02 +0100 Organization: Netia S.A. Lines: 40 Message-ID: <6q5i55-pt.ln1@router.piechotka.com.pl> References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl> <fimb7n$80v$1@bozon2.softax.pl> <fj5k6j$r3e$1@kujawiak.man.lodz.pl> <fj68ei$vbo$1@bozon2.softax.pl> <fjmo4o$a5r$1@kujawiak.man.lodz.pl> <fjouia$gr3$1@bozon2.softax.pl> <fjpmln$o6q$1@kujawiak.man.lodz.pl> <fjtv6o$kc$1@bozon2.softax.pl> <fkea3q$lup$1@kujawiak.man.lodz.pl> <fkobo3$mdl$1@bozon2.softax.pl> <fm5h8g$nbs$1@kujawiak.man.lodz.pl> NNTP-Posting-Host: 87-205-251-161.adsl.inetia.pl Mime-Version: 1.0 X-Trace: mx1.internetia.pl 1199992227 3615 87.205.251.161 (10 Jan 2008 19:10:27 GMT) X-Complaints-To: abuse@inetia.pl NNTP-Posting-Date: Thu, 10 Jan 2008 19:10:27 +0000 (UTC) X-Tech-Contact: usenet@internetia.pl X-Orig-Path: router.piechotka.com.pl!news User-Agent: Pan/0.132 (Waxed in Black) X-Server-Info: http://www.internetia.pl/news/ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit