quick sort in c++ (link list based)
March15
//quick sort method for link list. (click here to go link list) void List::QuickSortList(Node *left, Node *right){ Node *pivot; Node *lastS1; Node *lastUnknown; int temp; pivot = left; lastS1 = left; lastUnknown = left->next; if (left == right || left->prev == right) return; while(lastUnknown != right){ if(lastUnknown->data < pivot->data){ lastS1 = lastS1->next; temp = lastUnknown->data; lastUnknown->data = lastS1->data; lastS1->data = temp; } lastUnknown = lastUnknown->next; } if(lastUnknown->data < pivot->data){ lastS1 = lastS1->next; temp = lastUnknown->data; lastUnknown->data = lastS1->data; lastS1->data = temp; } temp = pivot->data; pivot->data = lastS1->data; lastS1->data = temp; if(lastS1->prev != NULL) QuickSortList(left, lastS1->prev); if(lastS1->next != NULL) QuickSortList(lastS1->next, right); }