
/* 简单排序在单链表中使用: 分析: 其实原理相同,只是单链表就失去了随机访问的优势,要注意防止断链*/#include <stdio.h>#include <stdlib.h>struct Link { int data; struct Link *next;};void simpleSort(Link *l) {//简单排序,每次选择一个最小的排在前面 Link *p, *pre, *m, *preM; while (l->next) { p = m = l->next, pre = preM = l; while (p) { if (p->data < m->data) { preM = pre; m = p; } pre = p; p = p->next; } if (m == l->next) { l = l->next; } else { preM->next = m->next; m->next = l->next; l->next = m; l = m; } }}int main() { struct Link *l; Link* createLink(int); l = createLink(0); simpleSort(l); while (l->next) { printf("%d ", l->next->data); l = l->next; } return 0;}