單鏈表的冒泡法排序


冒泡法排序,是我們在剛一接觸程序的時候就掌握了的很簡單的一種排序算法,思想主要就是不斷循環不斷找到最大值依次將最大值向右移動。

在鏈表里面,我們要將數據節點里面的數據按從小到大的順序排序,常用的插入排序,前面有分享到,它是典型的交換地址,從而實現插入,我們當然也可以用不交換地址,只需要交換數據節點值的方式去實現排序。

代碼如下:

void node_px_up(node *head)
{
    node *p;
    int t;  //用t實現兩數值的交換
    int i, j;
    for (i = 0; i <= 2; i++)  //雙for循環常用的方式
    {
        p = head->next; //p指向第一個數據節點
        for (j = 0; j <= 2 - i; j++)
        {
            if (p->a > p->next->a)  //比較第一個數據節點和后面一個數據節點
            {
                t = p->a;   //滿足條件就交換
                p->a = p->next->a;
                p->next->a = t;
            }
            p = p->next;//p移動到下一個數據節點
        }
    }
}

關於這個排序,我們很熟悉,所以用在鏈表里面,也十分的得心應手。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM