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, botów: 0