Sortowanie bąbelkowe
From Nasza Pasja - Programowanie
[edytuj]
Implementacja w C++
void babel(int *tab, int n)
{
int tmp;
bool zm;
for (int i=0; i<n; i++, zm=false)
{
for (int j=0; j<n-1; j++)
{
if (tab[j]>tab[j+1])
{
tmp = tab[j];
tab[j] = tab[j+1];
tab[j+1] = tmp;
zm=true;
}
}
if(zm==false) break;
}
}
Można to rozwiązać też w taki sposób:
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
float tab[100],n;
int ab;
ab=-1;
n=1;
do
{
cout<<"Podaj "<<n<<" liczbe: "; // Podanie przez uzytkownika Max 100 liczb.
ab++;
n++;
} while (scanf("%f",&tab[ab])==1); // Po wpisaniu znaku innego od liczby konczy sie petla
int zm;
int i,w,m;
cout<<"ab"<<ab<<endl;
do{
i=-1;
zm=0;
do
{
i++;
if (tab[i]>tab[i+1])
{
swap(tab[i],tab[i+1]); // Zamiana miejscami tab[i] i tab[i+1]
zm=1; //Jezeli zaszla jakas zmiana zm=1;
}
} while (i<ab-2); //Petla zakonczy sie jesli i bedzie mniejsze od (ab-2)
} while (zm==1); // Petla zakonczy sie jesli nie nastapi zadna zmiana miejscami w petli wyzej.
i=0;
do{
cout<<tab[i]<<", "; // Wyswietlanie
i++; // liczb w
} while (i<ab); // kolejnosci rosnacej
cout<<endl<<endl;
system("pause");
return 0;
}

