[C++] Bubblesort Algorithmus

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [C++] Bubblesort Algorithmus

      C-Quellcode

      1. /* bubble.cppGanze Zahlen in einen Vektor einlesen,
      2. aufsteigend sortieren und wieder ausgeben */
      3. #include "stdafx.h"
      4. #include <iostream>
      5. #include <iomanip>
      6. #include <stdio.h>
      7. #define MAX 100 // Maximale Anzahl
      8. long zahl [MAX];
      9. int main()
      10. {
      11. int i, anz; // Index, Anzahl
      12. std::cout << "\n Ganze Zahlen sortieren\n"
      13. << std::endl;
      14. // Zahlen einlesen
      15. std::cout << "Bis zu 100 ganze Zahlen eingeben\n"
      16. << "(Abbruch mit einem Buchstaben):" << std::endl;
      17. for( i = 0; i < MAX && std::cin >> zahl[i]; ++i)
      18. ;
      19. anz = i;
      20. // Zahlen sortieren
      21. bool sortiert = false; // Noch nicht sortiert.
      22. long hilf; // Zum Tauschen.
      23. int ende = anz; // Ende eines Durchlaufs.
      24. while( !sortiert) //Solange noch nicht sortiert
      25. {
      26. sortiert = true;
      27. --ende;
      28. for( i = 0; i < ende; ++i) // Benachbarte Zahlen vergleichen
      29. {
      30. if( zahl[i] > zahl[i+1])
      31. {
      32. sortiert = false;
      33. hilf = zahl[i];
      34. zahl[i] = zahl[i+1];
      35. zahl[i+1] = hilf;
      36. }
      37. }
      38. }
      39. // Zahlen ausgeben
      40. std::cout << "Die sortierten Zahlen:\n" << std::endl;
      41. for( i = 0; i < anz; ++i)
      42. std::cout << std::setw(10) << zahl[i];
      43. std::cout << std::endl;
      44. system("PAUSE");
      45. return 0;
      46. }
      Alles anzeigen


      Da ich das noch auf meiner alten Festplatte gefunden habe dachte ich mir das ich es mal hier veröffentliche.

      Das ist der Bubblesort Algorithmus der die Zahlen vom kleinsten bis zum größten sortiert. Da im Code alles kommentiert ist sollte es da keine großen Probleme geben es zu verstehen.
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Ein "using namespace" sollte man immer sein lassen, da dies Mehrdeutigkeiten hervorrufen kann, dies ist auch der Grund wieso man es nur lokal(in Source-Dateien) machen sollte oder in einem Funktionsrumpf. Ist sowas in Header-Dateien, wird dieses "using namespace" überall "weitervererbt" in andere Dateien was Folgefehler hervorrufen kann/wird.
    • Wobei das hier ja wohl keine Header Datei ist.

      Ich finde es in deinem Beispiel auch Sinnlos, das namespace wegzulassen. Das ist ja wohl nur ein Beispiel zum Lernen.
      Wenn in einem Programm zahlen sortieren muss, wird man wohl kaum die Zahlen per Hand eingeben und wahrscheinlich auch nicht Bubblesort verwenden.

      Daher, weil den meisten am Anfang beigebracht wird, namespace std zu Nutzen, finde ich es eigentlich sogar Schlecht, das wegzulassen, da das einige Leute verwirren kann. (Bzw, wegzulassen ohne Erklärung.)
    • Icii;318624 schrieb:

      Wobei das hier ja wohl keine Header Datei ist.

      Ich finde es in deinem Beispiel auch Sinnlos, das namespace wegzulassen. Das ist ja wohl nur ein Beispiel zum Lernen.
      Wenn in einem Programm zahlen sortieren muss, wird man wohl kaum die Zahlen per Hand eingeben und wahrscheinlich auch nicht Bubblesort verwenden.

      Daher, weil den meisten am Anfang beigebracht wird, namespace std zu Nutzen, finde ich es eigentlich sogar Schlecht, das wegzulassen, da das einige Leute verwirren kann. (Bzw, wegzulassen ohne Erklärung.)


      Warum soll es schlecht sein, ich meine die die es nicht anders gewohnt sind können weiter using namespace std benutzen, jedoch hab ich jetzt nur den Grund genannt.
    • Ich meine damit, das dein Programm oben nur zu Lernzwecken genutzt wird, und das auch nur zu sehr rudimentären, grundsätzlichen Sachen. Bei so ziemlich allen Tutorials/Büchern etc wurde am Anfang gesagt, das man namespace std benutzen soll, und in dem Code oben wird er ohne Erklärung weggelassen. (Die du dann auf Nachfrage nachgereicht hast.)

      Achja und trotzdem sehe ich den Sinn nicht, warum man sich bei solch einfachen Programm die Arbeit machen sollte, immer std:: zu schreiben, als namspace zu benutzen.
    • Icii;318626 schrieb:

      Ich meine damit, das dein Programm oben nur zu Lernzwecken genutzt wird, und das auch nur zu sehr rudimentären, grundsätzlichen Sachen. Bei so ziemlich allen Tutorials/Büchern etc wurde am Anfang gesagt, das man namespace std benutzen soll, und in dem Code oben wird er ohne Erklärung weggelassen. (Die du dann auf Nachfrage nachgereicht hast.)

      Achja und trotzdem sehe ich den Sinn nicht, warum man sich bei solch einfachen Programm die Arbeit machen sollte, immer std:: zu schreiben, als namspace zu benutzen.


      Komisch, in meinem Buch wurde nie erwähnt das man using namespace std benutzen soll. Und std:: einzutippen dauert nun auch keine Ewigkeit, damit gehste nur auf Nummer sicher.