Advertisement
everloongg

Untitled

Dec 17th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. void SortL(ListItem* p, compareFunction comp)
  2. {
  3.     ListItem* temp = p;
  4.  
  5.     for (; temp->next != NULL; temp = temp->next)
  6.     {
  7.         ListItem* minimum = temp;
  8.         ListItem*nMinimum = minimum->next;
  9.         for (; nMinimum->next != NULL;nMinimum = nMinimum->next) // nMinimum = nMinimum->next;//nastepny el
  10.         {
  11.             if (comp((const void*)minimum->next->info, (const void*)nMinimum->next->info) == 1)//prownanie nastepujacych po sobie le
  12.                                                                                                //porównujemy kolejne elementy
  13.                 minimum = nMinimum; // wskazuje na el przed minimum
  14.         }
  15.  
  16.         if (minimum != temp)//swap
  17.         {
  18.             nMinimum = minimum->next->next;//"dowiazana" koncowka
  19.             minimum->next->next = temp->next;// "dowiazuje" next najmniejszego elementu przed najmniejszy el  do kolejnego el który będzie przed nim
  20.             temp->next = minimum->next;// "dowiazuje "wskaźnik next od najmniejszego elementu  do znalezionego minimum
  21.             minimum->next = nMinimum;//"dowiazuje" wskaźnik który wskazywał na znalezione minimum do reszty listy
  22.         }
  23.  
  24.     }
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement