algorytm.org

Implementacja w C/C++



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sortowanie bąbelkowe (bubblesort) - Implementacja w C/C++
Ocena użytkownikóww: *****  / 103
SłabyŚwietny
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;
}
Komentarze
photo
+20 # Dawid120 2013-04-04 20:35
Wielkie dzięki, prostym językiem jest napisane dzięki czemu nawet początkujący sa w stanie zrozumieć :)
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+8 # HTF 2014-05-06 12:13
NO i to jest dobra, przejrzysta implementacja sortowania bąbelkowego w c++, w dodatku ładnie okomentowana! Brawa dla autora :)
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+3 # Maciej790 2014-11-14 15:28
Nie powinno być przypadkiem :
if( (i+1)!=5 && t>t[i+1]) ?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+1 # Tomasz Lubiński 2015-10-06 08:35
Nie, ponieważ tablica ma 6 elementów o indeksach 0, 1, 2, 3, 4, 5. Pętla for jest wykonywana dla i = 0, 1, 2, 3, 4. Czyli dla ostatniej iteracji, porównujemy element i-ty z i+1 czyli element t[4] i t[5] czyli dwa ostatnie elementy tablicy - OK, nie przekraczamy zakresu tablicy.
Gdyby wprowadzić proponowany przez Ciebie warunek wówczas ostatni element tablicy nie zostałby posortowany.
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-2 # Power-Glove-3000 2015-10-20 11:40
dzięki wielkie, niby proste a sam bym na to nie wpadł. może nie uwale pierwszego roku!
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+1 # VIOTLEIN 2017-01-17 22:38
umie ktoś zrobić do tego schemat blokowy?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # Someone 2017-12-19 19:16
Nie rozumiem dlaczego potrzebna jest zmienna zamiana?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # Kamil_ 2018-01-11 20:59
A sortowanie bąbelkowe nie powinno sprawdzać tablicy od końca?
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz