单链表进行冒泡排序,对结点进行交换

/*左右交换*/
LinkList SWAP(LinkList L)
{
     
    LinkList P,Q,Temp;
    P=L->Next;
    Q=P->Next;
    Temp=Q->Next;

    Q->Next=P;
    P->Next=Temp;
    L->Next=Q;

    return L->Next;

}

/*带头结点的链表冒泡排序*/
LinkList Bubble_Sort_B(LinkList L,int N)
{
     
    LinkList Rear;
    int Flag=0;
    for (int i = 0; i < N-1; i++)
    {
     
        Rear=L;
        Flag=0;//标记是否已经有序
        for (int j = 0; j < N-i-1; j++)
        {
       
            if ((Rear->Next->DATA)>(Rear->Next->Next->DATA))
            {
     
                Rear=SWAP(Rear);
                Flag=1;
            }else
                Rear=Rear->Next;
        }
        if (Flag==0)    break;
    }
    return L;
}

你可能感兴趣的:(排序算法,链表)