vector in bubblesort-algorithmus verwenden
-
Hallo zusammen,
habe hier eine Funktion die einen vector aus einer selbst definierten Menge zufälliger Zahlen erstellt. Nun will ich das Output, also den "zufälligen vector" in einen gegebenen Bubblesort algorithmus einbetten, damit dieser ihn sortiert. Der Bubblesort algorithmus ist jedoch so geschrieben, dass man seine eigenen Werte durch Input definieren kann die er sortiert.Hier der Code für den Random vector:
int main() { //Funktion für Vektor mit G zufälligen Werten srand (time(0)); int G; cout << "Definiere Grösse G des Vektors (ganze Zahl):" <<endl; cin >> G; vector<int> v; for (int i = 1; i <= G; i++) v.push_back( rand()%100 ); vector<int>::iterator pb; for (pb = v.begin(); pb != v.end(); pb++) cout << *pb << ", " ; cout << endl; cout << "(=Vektor vor Sortierung)" << endl;Der Bubblesort sieht so aus:
//sortieren: int compare(int, int); void sort(int[], const int); void swap(int *, int *); int compare(int x, int y) { return(x > y); } void swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } void sort(int table[], const int n) { for(int i = 0; i < n; i++) { for(int j = 0; j < n-1; j++) { if(compare(table[j], table[j+1])) swap(&table[j], &table[j+1]); } } } int main() { //Eingabebereich: int* tab; cout << "Eingegebene Zahl:" << G << endl; tab = new int [G]; cout << "Input numbers: \n\n"; for (int i = 0; i < G; i++) { int x = i; cout << "#" << ++x << ": "; cin >> tab[i]; } cout << "\nBefore sorting: "; for (int i = 0; i < G; i++) { cout << tab[i] << " "; } cout << "\nAfter sorting: "; sort(tab, G); for(int i = 0; i < G; i++) { cout << tab[i] << " "; } return 0; }Angepasst habe ich schon, dass der Algorithmus die grösse des Vectors N bereits aus der oberen Funktion übernimmt... nun weiss ich aber nicht wie ich die anschliessende eingabe der einzelnen zahlen durch den von mir erzeugten vector ersetzen kann. (oder halt gleich den ganzen input ersetzen)
Hoffe da kann mir jemand weiterhelfen!
Grüsse, Dave
-
sort(tab, G);
->
sort(&v[0], v.size());Besser wäre natürlich du schreibst das bubblesort so um, dass es mit iteratoren funktionieren.
-
Ok so funktioniert es, vielen Dank!
ja schon, das wäre besser, probier ich gleich mal noch aus.
greets dave
-
Warum überhaupt n Bubblesort?
-
314159265358979__ schrieb:
Warum überhaupt n Bubblesort?
Zum Üben.
-
Weils mir grad so auffält: Deine compare Funktion gibt zwar int zurück, aber nicht kleiner, gleich oder größer. Daher solltest du den Rückgabetyp von compare auf bool ändern und sie evtl. auch umbenennen, z.B. compare_greater.