Lista dwukierunkowa sortowanie
Ostatnio zmodyfikowano 2012-10-27 13:36
RayTango19 Temat założony przez niniejszego użytkownika |
Lista dwukierunkowa sortowanie » 2012-10-26 17:42:42 Witam wszystkich mam projekt z szeregowania procesów w Unixie. Potrzebuje algorytmu szeregowania listy dwukierunkowej na której są procesy. Zawsze miałem problem z listami .Narysowałem sobie działanie takiego algorytmu i napisałem go.Myślałem że będzie poprawny ,a tu odpala się ale jakiś błąd wyskakuje.Powiesić się można ;d . Oto kod : void sortuj() { priorytet * p, * k, * el1, * el2, * el3, * el4; if(( poczatek->next != NULL ) &&( head->next != NULL ) ) { for( p = head; p != koniec; p = p->next ) { for( k = p; k != koniec; k = k->next ) { if(( k->next == koniec ) &&( k->next->next == koniec ) ) break; el1 = k->prev; el2 = k; el3 = k->next; el4 = el3->next; if( el2->uspri > el3->uspri ) { el1->next = NULL; el2->prev = NULL; el2->next = NULL; el3->prev = NULL; el3->next = NULL; el4->prev = NULL; */ el3->next = el2; el2->prev = el3; el1->next = el3; el3->prev = el1; el2->next = el4; el4->prev = el2; } } } }
|
|
DejaVu |
» 2012-10-26 18:14:09 std::priority_queue i sprawa załatwiona. Co do Twojego algorytmu... utwórz najpierw poprawną listę do której będzie można normalnie dodawać i usuwać elementy. Później zajmij się algorytmem wstawiającym nowy element w środku. Reszta będzie formalnością. |
|
Mrovqa |
» 2012-10-26 19:06:11 Tak jak powiedział @DejaVu - użyj pojemnika, który od razu sortuje dane - będzie dużo szybciej i wygodniej. W samym STLu masz ich sporo - priority_queue, set, multiset, map, multimap (w standard C++11 się nie zagłębiałem - nie ma go na OI :P). Jeśli zależy Ci na jak najmniejszej złożoności czasowej, to możesz użyć kopca Fibonacciego (nie ma go w STLu). |
|
akwes |
» 2012-10-26 19:20:39 Jeżeli nie musisz sortować za każdym razem to może std::sort ? |
|
crash |
» 2012-10-26 20:38:44 Ciekawe jak on powie wykładowcy, że użył standardowego kontenera zamiast napisać samemu algorytm ;p
edit: napisz szkielet listy, to zrobię sortowanie, ale dopiero jutro jakoś z rana bo idę na flaszkę |
|
RayTango19 Temat założony przez niniejszego użytkownika |
» 2012-10-27 13:36:14 W sumie zapytam się go .Ale zrobię także na kontenerze. Co do mojego tematu .To powiedzcie mi czy w symulatorze Unixa mozna sortowac procesy wg priorytetu ,a potem przydzielać im ten kwant czasu .Bo ja do końca nie wiem jak się za to zabrać. |
|
« 1 » |