Skocz do zawartości

Schemat blokowy dowolnego algorytmu sortowania


Marmot

Rekomendowane odpowiedzi

Witam.

 

Bardzo pilnie potrzebuję schemat blokowy jakiegoś najprostszego algorytmu do sortowania elementów tablicy. Potrzebne mi to na sprawdzian z informatyki, a jak szukałem czegoś, to znajdowałem tylko kod C++a, którego kompletnie nie znam :) . Oczywiście, nie musi być schemat blokowy, może być nawet słowne wyjaśnienie co po kolei się dzieje, bylebym mógł ułożyć z tego schemat blokowy :) . Liczę na waszą pomoc :) .

Odnośnik do komentarza
Udostępnij na innych stronach

Nie mów że nie znasz :)

#include<iostream>

int main()
{
    int size = 4;
    int array[size];
    array[0] = 1;
    array[1] = 533;
    array[2] = 0;
    array[3] = 42;
    array[4] = 4;
    
    bool sort = 0; //0 - najmniejsze na gorze, 1 - najwieksze na gorze.
    int temp;
    for( int n = 1; n <= size; n++ )
    {
        if( ( ( array[n-1] < array[n] ) && sort ) || ( ( array[n-1] > array[n] ) && !sort ) )
        {
            temp = array[n-1];
            array[n-1] = array[n];
            array[n] = temp;
            
            n = 1;
        }
    }
    
    for( int n = 0; n <= size; n++ )
    {
        std::cout << array[n] << std::endl;
    }
    
    system("PAUSE");
}

Ew. do porawki.

Odnośnik do komentarza
Udostępnij na innych stronach

for( start; warunek; krok; )
{
    reszta kodu;
}

Najpierw robię element start, później sprawdzam warunek, jeśli true to wykonuję krok i resztę kodu, później znowu sprawdzam warunek i jeśli true to wykonuje krok i resztę kodu - itd. itd. jeśli z warunku wychodzi false to wtedy break :)

 

Można w sumie ją zapisać tak:

start;
while( warunek )
{
    krok;
    reszta kodu;
}

Odnośnik do komentarza
Udostępnij na innych stronach

for przyjmuje 3 argumenty. Pierwszy to zmienną tworzona w pętli mająca określoną wartość. Drugi to ustalenie tak jakby do kiedy ma się wykonywać czyli w tym przypadku aż będzie większe lub równe size. I ostatni argument, to określenie jakim sposobem czyli tutaj inkrementacja :).

 

edit:

// :P

Odnośnik do komentarza
Udostępnij na innych stronach

@Tymon: wiem na czym polega for, ale nie rozumiałem poprostu tego ostatniego z dwoma plusami, dopiero teraz sobie to skojarzyłem z GM ;p .

 

Czyli to będzie wyglądać tak?:

START
\/
Podaj rozmiar tablicy (size)
Podaj wartości do tablicy (array[size])
\/
sort:=false
temp:=0
\/
for n:=1 to size -> if array[n-1] < array[n] & sort OR array[n-1] > array[n] AND NOT sort -> temp:=array[n-1] -> array[n-1]:=array[n] -> array[n]:=temp -> n:=1
\/
Wyświetl tablicę
\/
STOP

Odnośnik do komentarza
Udostępnij na innych stronach

W sumie sort mógłbyś wywalić:

START
\/
Podaj rozmiar tablicy (size)
Podaj wartości do tablicy (array[size])
\/
temp:=0
\/
for n:=1 to size -> if array[n-1] > array[n] -> temp:=array[n-1] -> array[n-1]:=array[n] -> array[n]:=temp -> n:=1
\/
Wyświetl tablicę
\/
STOP

:)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...