![]() |
[c++] Bubblesort
Ich habe irgendwas gerade geändert und es funktioniert nicht mehr. Wo liegt der Fehler?
Code:
Sehr ihr ihn?
#include <iostream>
using namespace std; int werte[] = {2,3,1}; int n = 3; int main() { for(int i = 0; i < n; i++) { for(int j = 0; j < (n - 1); j++) { if(werte[j] > werte[j + 1]) { int temp = werte[j]; werte[j] = werte[j + 1]; werte[j + 1] = temp; } } cout << werte[i] << " \n"; //Ausgabe return 0; } Gruß |
Re: [c++] Bubblesort
Ich würde mal die Ausgabe überdenken.
Und es fehlt noch ein } |
Re: [c++] Bubblesort
Code:
Stimmt, wenn ich das nämlich in einer separaten Schleife laufen lasse, dann stimmt es wieder. Aber ich habe gerade Tomaten auf den Augen. Also entweder gebe ich es an der falschen Stelle aus, oder ich ändere i.
for(int i=0;i<n;i++)
{ cout << werte[i] << " \n"; //Ausgabe } Ich schau nochmal drüber ;) |
Re: [c++] Bubblesort
Du musst es zuerst Sortieren und erst danach ausgeben. ;)
Und noch ein Tipp: statt cout << werte[i] << " \n"; sollte man schreiben: cout << werte[i] << endl; Weil der Zeilenumbruch je nach Betriebssystem anders ist und endl das je nach Betriebssystem richtig macht. Also wenn man es für Linux kompiliert, macht es den Zeilenumbruch von Linux und wenn man es für Windows kompiliert, macht es den Zeilenumbruch für Windows. |
Re: [c++] Bubblesort
Hallo,
das ist kein richtiger Bubble-Sort for(int i = 0; i < n; i++) { for(int j = i+1; j < (n - 1); j++) { int wert_i = werte[i]; int wert_j = werte[j}; if wert_j<wert_i { // exchange wert_i <-> wert_j int temp_i = wert_i; wert_i = wert_j, wert_j = temp_i Heiko |
Re: [c++] Bubblesort
Zitat:
Danke für die Tipps :) |
Re: [c++] Bubblesort
Zitat:
Der Manipulator endl sorgt außerdem nicht nur für einen Zeilenumbruch, sondern auch für das Leeren aller Puffer, also bei std::ostream-Objekten für die unmittelbare Ausgabe auf dem Bildschirm. Das ist ineffizient; es würde vollkommen ausreichen, nur ganz am Ende mit cout.flush () den Puffer zu leeren. Zudem ist es, wenn nur ein einzelnes Zeichen gestreamt werden soll, effektiver, kein String-, sondern ein Character-Literal zu benutzen:
Code:
cout << werte[i] << '\n';
Zitat:
Bei meinen Anfängen mit Delphi bin ich über das Vorurteil gestolpert, es sei dort anders - das ist nur bei Strings so, und das auch nur aus historischen Gründen. |
Re: [c++] Bubblesort
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz