Das Gegenteil von einem Sortieralgorithmus :D
-
Hallo!
Naja, der Titel sagt ja schon alles.
Ich suche das sozusagen das Gegenteil von einem Sortieralgorithmus (Bubblesort, Shakersort usw), der ein Array mit n Elementen eben ... wie sagt man dazu... aus der ordnung bringt. ^^ Gibt es sowas überhaupt? Wäre für Anregngen oder Links dankbar!
-
int a[]={0,1,2,3,4,5,6,7,8,9}; std::random_shuffle(a,a+10); for(int i=0;i!=10;++i) cout<<a[i];
-
danke volkard

Wusst gar nciht dass es so eine funktion in der standard c-lib gibt
aber gut zu wissen ^^@mods: kann gern geschlossen werden

-
obwohl doch nicht

hab mir mal die msdn zur random_shuffle funktion angeschaut un das gefunden:// alg_push_heap.cpp // compile with: /EHsc #include <vector> #include <algorithm> #include <functional> #include <iostream> int main( ) { using namespace std; vector <int> v1, v2; vector <int>::iterator Iter1, Iter2; int i; for ( i = 1 ; i <= 9 ; i++ ) { v1.push_back( i ); } random_shuffle( v1.begin( ), v1.end( ) ); cout << "Vector v1 is ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")." << endl; // Make v1 a heap with default less than ordering make_heap ( v1.begin( ), v1.end( ) ); cout << "The heaped version of vector v1 is ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")." << endl; // Add an element to the heap v1.push_back( 10 ); cout << "The heap v1 with 10 pushed back is ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")." << endl; push_heap( v1.begin( ), v1.end( ) ); cout << "The reheaped v1 with 10 added is ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")." << endl << endl; // Make v1 a heap with greater than ordering make_heap ( v1.begin( ), v1.end( ), greater<int>( ) ); cout << "The greater-than heaped version of v1 is\n ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")." << endl; v1.push_back(0); cout << "The greater-than heap v1 with 11 pushed back is\n ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")." << endl; push_heap( v1.begin( ), v1.end( ), greater<int>( ) ); cout << "The greater than reheaped v1 with 11 added is\n ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")." << endl; }Ich weis das ist jetzt OT aber nur noch eine winzige Frage: was genau macht push_heap()?
-
Das ist für die Verwendung von Heaps, wie sie in Sedgewicks Algorithmen beschrieben sind.
-
Hast srand vergessen.
-
srand schrieb:
Hast srand vergessen.
Bist du dir sicher? Das beispiel ist immerhin aus der MSDN...
Und wenn ich mich richtig erinner stand da auch dass du funktion das intern macht... wobei ich grad keien zeit hab genau zu schauen (schule ^^)