冒泡法排序,是我們在剛一接觸程序的時候就掌握了的很簡單的一種排序算法,思想主要就是不斷循環不斷找到最大值依次將最大值向右移動。
在鏈表里面,我們要將數據節點里面的數據按從小到大的順序排序,常用的插入排序,前面有分享到,它是典型的交換地址,從而實現插入,我們當然也可以用不交換地址,只需要交換數據節點值的方式去實現排序。
代碼如下:
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移動到下一個數據節點 } } }
關於這個排序,我們很熟悉,所以用在鏈表里面,也十分的得心應手。