Rozpoznanie algorytmu sortującego

0

Witam, potrzebny był mi do projektu pewien algorytm sortujący, który znalazłem w internecie, chciałbym się dowiedzieć jak się on nazywa tzn (bąbelkowy, kubełkowy...) chodzi mi o dokładną nazwę. Mam opis i kod, który zamieszczam niżej, szukałem odpowiedzi w internecie ale nic nie znalazłem. Proszę o pomoc.

 Sortowanie numer 1:
- Algorytm ustawia pierwszy element listy jako maksimum 
- Kolejnym krokiem jest ustawienie wskaznika na kolejny element listy
- W przypadku gdy maksimum jest mniejsze od nastepnego elementu zwieksza sie licznik powtórzeń oraz inicjalizuje zmienna pomocnicza
- Maksimum zostaje ustawione jako większy element, również zmienna pomocnicza jest ustawiona jako wiekszy element
- Zamienia miejscami wartość większa z mniejsza na liście i przechodzi do kolejnego elementu listy

void sortuj(el_listy *lista){
    el_listy *wsk;
    wsk = lista;
    el_listy *maximum, *tmp; /*max = maxymalny element liczby*/
    while(wsk)
    {
        maximum = wsk->val;
        tmp = wsk->next;
        while(tmp)
        {
            if (maximum<tmp->val)
            {
                il_por+=1;
                int pom;
                maximum = tmp->val;
                pom = wsk->val;
                wsk->val = tmp->val;
                tmp->val = pom;
            }
            tmp = tmp->next;
        }
        wsk = wsk->next;
    }
 }
0

Wygląd mi to na opis pojedynczego przebiegu algorytmu sortowania bąbelkowego

0

Właśnie potrzebuje w projekcie dwóch rodzai sortowań mam oba wiem że drugi to bąbelkowy, który wygląda tak:

Sortowanie numer 2:
- Zaczynamy od pętli for, która odpowiada za wykonanie ilości sortowań 
- Sprawdzamy czy element aktualny jest większy od następnego, jeżeli nie następuje zmiana wartości, w przeciwnym przypadku aktualny element zostaje na miejscu i przechodzi do następnego elementu

void sortuj1(el_listy *lista, int lb)
{
    el_listy *wsk;
    wsk = lista;
    int tmp;
    int i;
    for (i = 0; i<lb; i++)
    {
        wsk = lista;
    while(wsk->next)
    {
        if(wsk->val > wsk->next->val)
        {
            il_por+=1;
            tmp = wsk->val;
            wsk->val = wsk->next->val;
            wsk->next->val = tmp;
        }
        wsk = wsk->next;
    }
    }
} 

Za to pierwszego nie mogę jasno wytłumaczyć, dlatego potrzebuje pomocy ;)

0
fasadin napisał(a):

tu nie znalazles?
http://en.wikipedia.org/wiki/Sorting_algorithm

No sprawdzałem, ale nie wiem czy mój angielski jest taki słaby, czy jestem debilem albo po prostu tam tego nie ma :)

0

Proszę, specjalnie dla Ciebie wpisałem w google hasło "Algorytmy sortujące" -> http://edu.i-lo.tarnow.pl/inf/alg/003_sort/index.php

0

@up
Przeczytałem wszystko co jest na tych stronach i jakoś się nie połapałem nadal co to za algorytm.

0

No jeszcze bardziej wnikliwie to prześledziłem i chce się tylko upewnić czy to na pewno to:
http://edu.i-lo.tarnow.pl/inf/alg/003_sort/0010.php
to ten algorytm ? :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1