單鏈表排序

2021-08-17 16:13:27 字數 1171 閱讀 8387

思路:

sort排序函式執行一次,將鍊錶倆倆之間比較大小,比較之後,大的在後,小的在前(鍊錶節點之間只交換內容,節點不動)。只有鍊錶的所有倆倆相鄰之間都是小的在前,大的在後,才返回true,否則返回false。while(sort(head));

#include 

#include

#include

#include

"string.h"

typedef structnodenode

;voidmain(intargc,

char*argv) ;

intsize =sizeof(num)/sizeof(int);

node *init(intnum,

intsize);

voiddisplay(node *head);

bool

sort(node *head);

node *head;

head = init(num,size);

printf("before sorted:");

display(head);

while(!sort(head));

printf("

\n");

printf("after sorted:");

display(head);

}node *init(intnum,

intsize)

q->next = null

;returnhead;

}bool

sort(node *head)

p = p->next;}

returnflag;

}voiddisplay(node *head)

}

單鏈表之排序單鏈表

package list public class sortedsinglylist extends singlylist 將values陣列中的所有物件按值大小插入 public sortedsinglylist t values 過載深拷貝,由單鏈表構建排序單鏈表 public sortedsi...

單鏈表排序

思路1 將鍊錶中的資料存入陣列中,使用陣列進行排序,排好後再存入鍊錶中。當然這並不是這題所要考察的。但是在實際應用中卻相當有價值。因為鍊錶中的排序演算法都比較慢,進行轉存再排序也是一種很好的方法。思路2 排序演算法有 1,插入排序 簡單插入排序,希爾排序 2,交換排序 氣泡排序,快速排序 3,選擇排...

單鏈表排序

1 歸併排序 將鍊錶拆分成兩個鍊錶,遞迴,歸併,將兩個已排序鍊錶合併 public listnode sortlist listnode head pre.next null return merge sortlist head sortlist slow public listnode merge...