Ĺadny brzuch
Witam! Na wstępie chciałem powiedzieć, że wiem iż są to podstawy, ale jednak nie mogę sobie z tym poradzić. Szukałem w Google i innych źródłach, ale jednak zawsze się coś nie zgadza.
Próbowałem zapisać ten algorytm w Eli bo takie jest moje zadanie, aby on działał i w ogóle, ale jednak cały czas jakiś błąd.
Oto ten algorytm:
http://www.i-lo.tarn...ages/004_01.gif
Chciałbym prosić o wytłumaczenie (oczywiście w miarę możliwości) krok po kroku, na chłopski rozum jak przebiega ten algorytm... Np. już na początku nie wiem dlaczego nie podaje na początku "n" liczb zbioru? Oraz nie wiem także jak zapisać "zamianę" licz. Skąd się biorą te wszystkie zmienne? Gdy zapiszę w takiej postaci jak jest na algorytmie program Eli wywala mi, że mam za dużą ilość operatorów...
Mam nadzieję, że ktoś będzie miał ochotę mi pomóc ;)
Nie wiem, czy Ci wytłumaczy ktoś lepiej, niż Wikipedia :)
http://pl.wikipedia...._bąbelkowe
Ja spróbowałbym wytłumaczyć tak:
masz dwie pętle zagnieżdżone, jedna to while(warunek) (robi coś, dopóki jest spełniony warunek), a w niej jest for(i=0; i<ILOSC_ELEMENTOW_ZBIORU-2; i++).
Wygląda to tak:
while(cos_sie_zmienilo) { cos_sie_zmienilo = false; for(int i=0; i<ILOSC_ELEMENTOW_ZBIORU; i++) { //porównywanie } }
Jest to pseudokod podobny do C++.
Porównywanie polega na sprawdzeniu, czy aktualny element zbioru mniejszy od kolejnego. Jeśli tak, to zamiana polega na utworzeniu kolejnej, pomocniczej zmiennej:
int pom; int a, b; if (a<b) { pom = b; b = a; a = pom; cos_sie_zmienilo = true; }
(Pseudokod C++.)
Dodanie linijki cos_sie_zmienilo=true; nie zapętla naszego programu na stałe :) //przypominam o while(cos_sie_zmienilo)
Mam nadzieję, że rozumiesz po moim opisie :)
Ew. poszukaj jeszcze na algorytm.org ;) //i Google :)
Użytkownik pbnan edytował ten post 15 marzec 2007, 19:04
a wlasnie chcialbym od kogos tak krok po kroku... jezeli mozna :)
a wlasnie chcialbym od kogos tak krok po kroku... jezeli mozna :)
Przeciez w wiki niedosc ze sa kody zrodlowe to jeszcze jest jeden przyklad sortowania tablicy rozpisany krok po kroku...
wiem wiem duzo wymagam.. ale jakby mi ktos mogl opisac np. "w tym miejscu program pobiera liczbe" itd...
chciałbym wiedziec skąd algorytm bierze "n" tzn ilość liczb i ich zakres... bo nie rozumiem tego :)
Użytkownik qba89 edytował ten post 15 marzec 2007, 20:45
Duuużo tego jest
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Próbowałem zapisać ten algorytm w Eli bo takie jest moje zadanie, aby on działał i w ogóle, ale jednak cały czas jakiś błąd.
Oto ten algorytm:
http://www.i-lo.tarn...ages/004_01.gif
Chciałbym prosić o wytłumaczenie (oczywiście w miarę możliwości) krok po kroku, na chłopski rozum jak przebiega ten algorytm... Np. już na początku nie wiem dlaczego nie podaje na początku "n" liczb zbioru? Oraz nie wiem także jak zapisać "zamianę" licz. Skąd się biorą te wszystkie zmienne? Gdy zapiszę w takiej postaci jak jest na algorytmie program Eli wywala mi, że mam za dużą ilość operatorów...
Mam nadzieję, że ktoś będzie miał ochotę mi pomóc ;)
Nie wiem, czy Ci wytłumaczy ktoś lepiej, niż Wikipedia :)
http://pl.wikipedia...._bąbelkowe
Ja spróbowałbym wytłumaczyć tak:
masz dwie pętle zagnieżdżone, jedna to while(warunek) (robi coś, dopóki jest spełniony warunek), a w niej jest for(i=0; i<ILOSC_ELEMENTOW_ZBIORU-2; i++).
Wygląda to tak:
while(cos_sie_zmienilo) { cos_sie_zmienilo = false; for(int i=0; i<ILOSC_ELEMENTOW_ZBIORU; i++) { //porównywanie } }
Jest to pseudokod podobny do C++.
Porównywanie polega na sprawdzeniu, czy aktualny element zbioru mniejszy od kolejnego. Jeśli tak, to zamiana polega na utworzeniu kolejnej, pomocniczej zmiennej:
int pom; int a, b; if (a<b) { pom = b; b = a; a = pom; cos_sie_zmienilo = true; }
(Pseudokod C++.)
Dodanie linijki cos_sie_zmienilo=true; nie zapętla naszego programu na stałe :) //przypominam o while(cos_sie_zmienilo)
Mam nadzieję, że rozumiesz po moim opisie :)
Ew. poszukaj jeszcze na algorytm.org ;) //i Google :)
Użytkownik pbnan edytował ten post 15 marzec 2007, 19:04
a wlasnie chcialbym od kogos tak krok po kroku... jezeli mozna :)
a wlasnie chcialbym od kogos tak krok po kroku... jezeli mozna :)
Przeciez w wiki niedosc ze sa kody zrodlowe to jeszcze jest jeden przyklad sortowania tablicy rozpisany krok po kroku...
wiem wiem duzo wymagam.. ale jakby mi ktos mogl opisac np. "w tym miejscu program pobiera liczbe" itd...
chciałbym wiedziec skąd algorytm bierze "n" tzn ilość liczb i ich zakres... bo nie rozumiem tego :)
Użytkownik qba89 edytował ten post 15 marzec 2007, 20:45
Duuużo tego jest