 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Babak Pourat Guest
|
Posted: Thu Feb 24, 2005 8:48 am Post subject: sortiert alorithmus |
|
|
Hallo
Ich finde in der STL kein Algorithmus mit dem ich unmittelbar überprüfen
kann ob eiene Collection sortiert ist.
Gibt es sowas?
PS: mir erscheint es sehr aufwendig sie erst zu kopieren, die Kopie zu
sortieren, und dann die Kopie mit dem orginal zu vergleichen!Vernünftiger
scheint es zu sein in einer eigenen while Schleife zu untersuchen ob jedes
Element kleiner als sein nachfolger ist.
Babak
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
dietmar_kuehl@yahoo.com Guest
|
Posted: Thu Feb 24, 2005 5:07 pm Post subject: Re: sortiert alorithmus |
|
|
Babak Pourat wrote:
| Quote: | Ich finde in der STL kein Algorithmus mit dem ich unmittelbar
überprüfen
kann ob eiene Collection sortiert ist.
Gibt es sowas?
|
Sicher: 'adjacent_find()' mit einem passenden binären Predikt. ...
oder
auch 'mismatch()' mit um ein Element verschobenen Sequenzen. Wenn die
Reihenfolge geändert werden kann, falls die Sequenz nicht sortiert
ist,
sollte auch sowas wie 'next_permutation()' funktionieren.
| Quote: | PS: mir erscheint es sehr aufwendig sie erst zu kopieren, die Kopie
zu
sortieren, und dann die Kopie mit dem orginal zu
vergleichen!Vernünftiger
scheint es zu sein in einer eigenen while Schleife zu untersuchen ob
jedes
Element kleiner als sein nachfolger ist.
|
Sicher. Auf die Idee, die Sequenz zu kopieren, zu sortieren und dann zu
vergleichen wäre ich auch nie gekommen. Insbesondere: warum sollte man
wissen wollen, ob eine Sequenz sortiert ist? Die einzige Antwort die
mir
einfällt ist, um ggf. sich das Sortieren zu sparen...
--
<mailto:dietmar_kuehl (AT) yahoo (DOT) com> <http://www.dietmar-kuehl.de/>
<http://www.contendix.com> - Software Development & Consulting
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Falk Tannhäuser Guest
|
Posted: Thu Feb 24, 2005 5:11 pm Post subject: Re: sortiert alorithmus |
|
|
Babak Pourat wrote:
| Quote: | Ich finde in der STL kein Algorithmus mit dem ich unmittelbar überprüfen
kann ob eiene Collection sortiert ist.
Gibt es sowas?
PS: mir erscheint es sehr aufwendig sie erst zu kopieren, die Kopie zu
sortieren, und dann die Kopie mit dem orginal zu vergleichen! Vernünftiger
scheint es zu sein in einer eigenen while Schleife zu untersuchen ob jedes
Element kleiner als sein nachfolger ist.
|
Genau so, z.B.:
template<typename ForwardIterator>
bool is_sorted(ForwardIterator first, ForwardIterator last)
{
if(first == last) return true;
for(ForwardIterator previous = first++; first != last; previous = first++)
if(*first < *previous) return false;
return true;
}
template
bool is_sorted(ForwardIterator first, ForwardIterator last, BinaryPredicate pred)
{
if(first == last) return true;
for(ForwardIterator previous = first++; first != last; previous = first++)
if(pred(*first, *previous)) return false;
return true;
}
MfG
Falk
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Markus Schaaf Guest
|
Posted: Thu Feb 24, 2005 5:43 pm Post subject: Re: sortiert alorithmus |
|
|
"Babak Pourat" <pourat (AT) autronic (DOT) melchers.de> schrieb:
| Quote: | Ich finde in der STL kein Algorithmus mit dem ich unmittelbar überprüfen
kann ob eiene Collection sortiert ist.
|
Ich schon:
bool sorted = std::adjacent_find( first, last, std::greater<T>() )
== last;
Für strengere Ordnung dann »greater_equal«.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Babak Pourat Guest
|
Posted: Fri Feb 25, 2005 12:36 pm Post subject: Re: sortiert alorithmus |
|
|
Markus Schaaf wrote:
| Quote: | "Babak Pourat" <pourat (AT) autronic (DOT) melchers.de> schrieb:
Ich finde in der STL kein Algorithmus mit dem ich unmittelbar
überprüfen kann ob eiene Collection sortiert ist.
Ich schon:
bool sorted = std::adjacent_find( first, last, std::greater<T>() )
== last;
Für strengere Ordnung dann »greater_equal«.
|
Danke
Babak
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|