Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

C++ Bubblesort

Empfohlene Antworten

Hallo an alle ich brauche dringend Hilfe:

Ich habe folgenden Code, und weiß nicht weiter:

#include <iostream>

#include <ctime>

#include <cstdlib>

using namespace std;

int main() {

int n=0 ;

int A[255];

do { // Einlesen der Daten

for ( int i=0; i < n; i++)

A = rand();

if (rand != 0) n++; // Anzahl der Elemente

} while (rand() && n<max);

time_t vorher=time(NULL); // Anz. Sekunden seit 1.1.1970 0:00

// Sortieren

for (int i=1; i < n; i++) // Durchläufe

for (int j=n-1; j>=i; j--) {// ein Durchlauf

if (A[j-1] > A[j]) { // vertauschen

int tmp = A[j-1];

A[j-1] = A[j];

A[j] = tmp;

}

}

for (int i= 0; i<n ; i++) // Ausgeben

cout << A << " ";

time_t nachher=time(NULL); //Anz. Sekunden seit 1.1.1970 0:00

// Ausgeben

cout << "Dauer: " << nachher-vorher << "sec" << endl;

cout << endl;

cout << "Fortschritt " << int(i*100.0/n) << " % \r";

}

Bubble-Sort-Verfahren zum Sortieren

ganzer Zahlen, indem Sie Zeitmessungen mit unterschiedlich vielen Werten (1.000, 10.000,

100.000 und 200.000) vornehmen!

Was ist da falsch?

Ich sitze schon Stunden daran und bekomme nur Fehlermeldungen.

Bitte helft mir.

Danke!

:confused:

Hallo,

es sind folgende Fehlermeldungen:

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(12) : error C2563: Listen der formalen Parameter stimmen nicht überein

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(12) : error C2568: '<': Auflösung der Funktionsüberladung nicht möglich

Ich bin dankbar über jede hilfe.

Was soll max sein? Deklariert hast du diese Variable jedenfalls nicht.

Es ergibt auch keinen Sinn, wie du rand benutzt. rand ohne runde Klammern liefert dir den Funktionszeiger. Der wird immer ungleich Null sein. Und rand() in der while-Bedingung ist auch Unsinn. Ist dir klar, dass dieser zweite Aufruf mit hoher Wahrscheinlichkeit nicht denselben Wert liefert wie den, den du in A gespeichert hast?

Weiter unten greifst du dann auf i zu, obwohl die Gültigkeit dieser Variablen auf den for-Block begrenzt ist.

Außerdem solltest du deinen Code mal ordentlich einrücken. Dann sieht man auch gleich, dass du weniger schließende als öffnende geschweifte Klammern hast.

Habe noch an dem Code verändert ohne Erfolg, anscheinend habe ich nicht genug Kenntnisse zur zeit.

#include <iostream>

#include <ctime>

#include <cstdlib>

using namespace std;

int main() {

int n=0 ;

int A[255];

for ( int i=0; i < n; i++)

A = rand();

}

if ((rand()( != 0); n++; );// Anzahl der Elemente

for (rand() && n<max){

time_t vorher=time(NULL); // Anz. Sekunden seit 1.1.1970 0:00

// Sortieren

for (int i=1; i < n; i++) // Durchläufe

for (int j=n-1; j>=i; j--) {// ein Durchlauf

if (A[j-1] > A[j]) { // vertauschen

int tmp = A[j-1];

A[j-1] = A[j];

A[j] = tmp;

}

}

for (int i= 0; i<n ; i++) // Ausgeben

time_t nachher=time(NULL); //Anz. Sekunden seit 1.1.1970 0:00

// Ausgeben

cout << "Dauer: " << nachher-vorher << "sec" << endl;

cout << endl;

}

Bitte helft mir.

OK, die Fehlermeldungem sind:

1>------ Erstellen gestartet: Projekt: Bubble_Sort, Konfiguration: Debug Win32 ------

1>Kompilieren...

1>Time.cpp

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(9) : error C2143: Syntaxfehler: Es fehlt ',' vor '<'

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(9) : error C2086: 'int i': Neudefinition

1> c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(9): Siehe Deklaration von 'i'

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(10) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C2059: Syntaxfehler: 'if'

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C2143: Syntaxfehler: Es fehlt ')' vor ';'

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C2143: Syntaxfehler: Es fehlt ')' vor ';'

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C2143: Syntaxfehler: Es fehlt ';' vor '++'

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C2059: Syntaxfehler: ')'

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(15) : error C2059: Syntaxfehler: 'for'

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(16) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'

1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(16) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?

1>Das Buildprotokoll wurde unter "file://c:\Users\Uta\Documents\Visual Studio 2008\Projects\Bubble_Sort\Bubble_Sort\Debug\BuildLog.htm" gespeichert.

1>Bubble_Sort - 12 Fehler, 0 Warnung(en)

========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Ich scheine heute für ide Fehler blind zu sein.

Du sollst die CODE-Tags benutzen! Sonst liest sich keiner den Quellcode durch.

Das ist Knopf mit dem Raute-Zeichen in dem Beitragseditor. Zwischen die beiden CODE-Tags packst du dann deinen Quellcode.

Hallo, danke für den Tip, hier der Code:

#include <iostream>

#include <ctime>

#include <cstdlib>

using namespace std;

int main() 

{

	int n=0 ;

	int A[255];

	for ( int i=0, i < n, i++)

	{

		A[i] = rand();

	}

}

if ((rand()( != 0); n++; )// Anzahl der Elemente

for (rand() && n<i)

{

	time_t vorher=time(NULL); // Anz. Sekunden seit 1.1.1970 0:00

	// Sortieren

	for (int i=1; i < n; i++) // Durchläufe

		for (int j=n-1; j>=i; j--) {// ein Durchlauf

			if (A[j-1] > A[j]) { // vertauschen

				int tmp = A[j-1];

				A[j-1] = A[j];

				A[j] = tmp;

			}


		}

		for (int i= 0; i<n ; i++) // Ausgeben


			time_t nachher=time(NULL); //Anz. Sekunden seit 1.1.1970 0:00

		// Ausgeben

		cout << "Dauer: " << nachher-vorher << "sec" << endl;

		cout << endl;

}

danke.:upps

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
int n=0 ;
int A[255];
for ( int i=0, i < n, i++)
{
A[i] = rand();
}
}[/code]

Die einzelnen Teile einer For-Anweisung trennt man mit Semikolon, nicht mit Komma. Die Fehlermeldung gibt hier einen ziemlich deutlichen Hinweis. Und hier ist deine Main-Funktion übrigens auch zu Ende.

Bitte mach dir doch mal die Mühe, die Blöcke und die Einrückung deines Programms in Ordnung zu bringen.

Hallo, habe nun alles neu geordnet, hilft aber auch nichts, bin sehr ratlos:

#include <iostream>

#include <ctime>

#include <cstdlib>

using namespace std;

int main() 

{	unsigned int i();

	unsigned int n=0 ;

	int A[255];

	for ( i = 0, i < n, i++)

	{

		A[i] = rand();

	}


if ((rand()( != 0); n++; )// Anzahl der Elemente

for (rand() && n<i)

{

	time_t vorher=time(NULL); // Anz. Sekunden seit 1.1.1970 0:00

	// Sortieren

	for ( i=1, i < n, i++) // Durchläufe

		for (int j=n-1, j>=i, j--) {// ein Durchlauf

			if (A[j-1] > A[j]) { // vertauschen

				int tmp = A[j-1];

				A[j-1] = A[j];

				A[j] = tmp;

			}


		}

		for (int i= 0, i<n , i++) // Ausgeben


			time_t nachher=time(NULL); //Anz. Sekunden seit 1.1.1970 0:00

		// Ausgeben

		cout << "Dauer: " << nachher-vorher << "sec" << endl;

		cout << endl;

}

}

Bitte seht doch mal genauer hin. ich soll damit Zeitmessungen mit unterschiedlich vielen Werten (1.000, 10.000,

100.000 und 200.000) vornehmen!

Hallo, habe nun alles neu geordnet

Mir scheint, du hast den Code wild durch die Gegend geschoben, die Einrückung ist immer noch furchtbar.

hilft aber auch nichts, bin sehr ratlos
Du hast es jetzt dreimal in Folge geschafft, eine absolut nutzlose Fehlerbeschreibung abzuliefern. Langsam habe ich keine Lust mehr.

Das hier:

unsigned int i();

Ist eine Funktionsdeklaration, mach die Klammern da weg.

Zur for-Anweisung habe ich dir schon etwas gesagt. Du hast es leider nicht umgesetzt, sondern statt dessen den Fehler auf alle anderen for-Anweisungen übertragen.

keller, du solltest den code nochmal komplett neuschreiben;

ich hab den eindruck, dass du den nur irgendwie zusammenkopiert hast;

da stimmt ja quasi nix ;)

OT: Klotzkopp, dein altes user pic war seriöser :P

bei mir geht's so

#include <ctime>

#include <cstdlib>

#include <iostream>

using namespace std;

int main()

{

const int max=20;

unsigned int n=0;

int x=1,Zahl;

int A[max]={0};

while (rand()&&(n<max)){

for (unsigned int i=0; i < n; i++)

A = rand();

n++;}

time_t vorher=time(NULL);

for (unsigned int i=0 ; i<=n; i++)

for (unsigned int j=n-1 ; j>i; j--){

if (A[j-1]>A[j]){

int tmp=A[j-1];

A[j-1]=A[j];

A[j]=tmp;

}

}

for (unsigned int i=0 ; i<n; i++)

cout<< A<< " ";

cout << endl;

time_t nachher=time(NULL);

for (unsigned int i=0 ; i<n; i++)

{

cout << "Dauer: " << nachher-vorher << "sec" << endl;

cout << "Fortschritt " << int(i*100.0/n) << " % \r";

}

}

aber wie man zeit messen kann weisse ich nicht genau

Vielen Dank an alle es ist erledigt.

weisste wie man die verschiedene zeit messt und wie damit einen graf macht ?

Hier der fertige Code und in Excell muss man die Werte eintragen und die grafik erstellen.

#include <ctime>

#include <cstdlib>


#include <iostream>

using namespace std;


int main()

{

	const long int max=253000;

	unsigned  long int n=0;

	long int x=1;

	long int A[max]={0};

time_t vorher=time(NULL);

	while (rand()&&(n<max)){

		for (unsigned long int i=0; i < n; i++)

			A[i] = rand();

		n++;}


	for (unsigned long int i=0 ; i<=n; i++)

		for (unsigned int j=n-1 ; j>i; j--){

			if (A[j-1]>A[j]){

				long int tmp=A[j-1];

				A[j-1]=A[j];

				A[j]=tmp;

			}

		}

		for (unsigned long int i=0 ; i<n; i++)


			cout<< A[i]<< " ";

		cout << endl;



		for (unsigned long int i=0 ; i<n; i++)

		{

time_t nachher=time(NULL);

			cout << "Dauer: " << nachher-vorher << "sec" << endl;

			cout << "Fortschritt " << long int(i*100.0/n) << " % \r";

		}


}

eine andere frage, hast du vielleicht den Code von der Wurzelberechnung, da hänge ich noch dran.

Die Zeit misst man indem man bei const int max die verschiedenen Werte eingibt.

der Rest steht schon da.

Die Zeit misst man indem man bei const int max die verschiedenen Werte eingibt.

der Rest steht schon da.:)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.