Ocena użytkownikóww: ***** / 103
Nadesłany przez dawidex44, 22 listopada 2012 23:35
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
bubblesort.cpp:
//Sortowanie bąbelkowe
//dawidex44
//www.algoryt,.org
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int t[6]={33,41,54,43,61,1},schowek,zamiana; //deklaracja zmiennych, przypisanie liczb do tablicy
do
{
zamiana=0;//przed każdym "przejazdem" pętli for zmienna zamiana jest zerowana
for (int i=0; i<5; i++)
{
if (t[i]>t[i+1])// jeśli element tablicy jest większy od następnego elementu
{
zamiana=zamiana+1; //jeśli jest jakaś zmiana, to zmienne zamiana powiększa swoją wartość
schowek=t[i];//wartość t[i] jest kopiowana do schowka
t[i]=t[i+1];//t[i] przyjmuje wartość następnego elementu, gdyż jest on mniejszy
t[i+1]=schowek;//kolejny element tablicy przejmuje wcześniejszą wartość poprzedniego elementu, gdyż jest on większy
}
}
}
while(zamiana!=0);//jeśli zmienna zamiana miałaby wartość 0, oznaczałoby to że nie dokonano żadnych zmian, a więc nie ma potrzeby dalszego sortowania
for (int j=0; j<=5; j++)
{
cout<<t[j]<<" ";// wypisanie posortowanych liczb
}
getch();
return 0;
}
if( (i+1)!=5 && t>t[i+1]) ?
Gdyby wprowadzić proponowany przez Ciebie warunek wówczas ostatni element tablicy nie zostałby posortowany.