Hakan Sözer

Yel Değirmenlerine Karşı Don Kişot Muyum?

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);

}

E-posta gizli kalacak.

Website örneği

Yorumunuz: