Sortowanie babelkowe

0

Nie wiem jak zrobić tak, aby sortowanie robiło się, dopóki wszystkie liczby nie będą na swoim miejscu za pomocą do while i zmiennej bool, pomoże ktoś? :)

#pragma hdrstop
#pragma argsused

#ifdef _WIN32
#include <tchar.h>
#include <cstdlib>
#else
  typedef char _TCHAR;
  #define _tmain main
#endif

#include <stdio.h>
#include <iostream>
using namespace std;
int tab[15], zmienna,z=0, j;
bool spr;
 int _tmain(int argc, _TCHAR* argv[])
{


	for (int i = 0; i < 15; i++)
 {
   tab[i]= (rand()%100+1);
   cout<<"Wartosc pozycji nr: "<<i<<" wynosi: "<<tab[i]<<endl;
 }
   cout<<"Wyglad tablicy po sortowaniu:"<<endl;

spr=true;
   do
   {
		for (int j = 0; j < 15; j++)
		{


			if ( tab[j]>tab[j+1]) {
			   zmienna=tab[j+1];
			   tab[j+1]=tab[j];
			   tab[j]=zmienna;

			}
		   }
			 for (int k = 0; k < 15; k++)
			 {
			cout<<"Wartosc pozycji nr: "<<k<<" wynosi: "<<tab[k]<<endl;
			  }
			  	 }
	 while (spr=false);

	system("pause");
	return 0;
}
0

zwykle kończy się jeśli w poprzednim obiegu pętli nie było żadnych zmian.

ten warunek uwzględnia pesymistyczny i optymistyczny przebieg sortowania.

0
bool bylaZmiana = false;

do {
     … … …
} while (bylaZmiana);

1 użytkowników online, w tym zalogowanych: 0, gości: 1