Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void SortL(ListItem* p, compareFunction comp)
- {
- ListItem* temp = p;
- for (; temp->next != NULL; temp = temp->next)
- {
- ListItem* minimum = temp;
- ListItem*nMinimum = minimum->next;
- for (; nMinimum->next != NULL;nMinimum = nMinimum->next) // nMinimum = nMinimum->next;//nastepny el
- {
- if (comp((const void*)minimum->next->info, (const void*)nMinimum->next->info) == 1)//prownanie nastepujacych po sobie le
- //porównujemy kolejne elementy
- minimum = nMinimum; // wskazuje na el przed minimum
- }
- if (minimum != temp)//swap
- {
- nMinimum = minimum->next->next;//"dowiazana" koncowka
- minimum->next->next = temp->next;// "dowiazuje" next najmniejszego elementu przed najmniejszy el do kolejnego el który będzie przed nim
- temp->next = minimum->next;// "dowiazuje "wskaźnik next od najmniejszego elementu do znalezionego minimum
- minimum->next = nMinimum;//"dowiazuje" wskaźnik który wskazywał na znalezione minimum do reszty listy
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement