• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Lista jednokierunkowa, selection sort

Object Storage Arubacloud
0 głosów
142 wizyt
pytanie zadane 17 kwietnia 2016 w C i C++ przez centrum123 Początkujący (310 p.)
edycja 17 kwietnia 2016 przez centrum123

Dzień Dobry,

Otóż na ćwiczeniach z asd ostatnio zimplementowaliśmy selection sorta do listy jednokierunkowej. Mam parę pytań do was odnośnie tego kodu ponieważ teraz gdy odświeżam notatki nie bardzo przekonują mnie do poprawności tego algo

struct Node {
   Node *next;
   int value;
};
void sort ( Node *list ) {
   Node sorted; // nie powinna zostac przydzielona pamiec ?
   sorted.next = NULL;
   while ( list ->next != NULL) {
      int max = list -> next -> value;
      Node *previter = list;
      Node *iter = list -> next;
      while ( iter -> next != NULL ) {
         if ( iter -> next -> value > max ) {
            previter = iter;
            int MAX = iter -> next -> value;
         }
         iter = iter -> next;
      }
      Node * helper;
      helper = sorted.next;
      sorted.next = previter -> next;
      previter -> next = previter -> next -> next;
      sorted.next -> next = helper;
      // tych  5 linijek nie rozumiem, helper przechowuje wskaznik na NULL ?
   }
   list -> next = sorted.next; // kompletnie nie wiem
}

Jezeli na poczatku iter wskazuje na 1 element listy to a co wskazuje wtedy previter ? na liste ?

 

1 odpowiedź

0 głosów
odpowiedź 17 kwietnia 2016 przez Porcupine Nałogowiec (31,560 p.)
edycja 17 kwietnia 2016 przez Porcupine

Sam w sobie kod na pewno nie działa, chociażby dla takich danych:



A dlaczego postaram się za raz sprawdzić.... 

Swoją drogą, jesteś pewien, że to CountingSort, a nie jakiś SelectionSort? Bo zliczania wystąpień to ja w tym nie widze...

komentarz 17 kwietnia 2016 przez centrum123 Początkujący (310 p.)
A nie tak tak selesction juz zmieniam nazwe moj wielki blad :) chociaz tyle, ze cos w nim musi siedziec nie tak. Najbardziej nurtuje mnie to wskazanie na element przed gdy iter jest jako pierwszy.

Podobne pytania

0 głosów
0 odpowiedzi 268 wizyt
pytanie zadane 23 grudnia 2018 w C i C++ przez Prospector Nowicjusz (120 p.)
0 głosów
1 odpowiedź 463 wizyt
pytanie zadane 11 kwietnia 2018 w C i C++ przez kikosiak Obywatel (1,010 p.)
0 głosów
1 odpowiedź 196 wizyt

92,580 zapytań

141,433 odpowiedzi

319,665 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...