数据结构冒泡排序法

来源:百度知道 编辑:UC知道 时间:2024/05/10 04:40:43
#include<stdio.h>
#include<stdlib.h>
#define datatype1 int
#define null 0
#define end -1
#define d "%d"
#define len sizeof(linklist)
typedef struct node
{
datatype1 data;
struct node *next;
}linklist;
/*头插入法建表函数*/
linklist *creatlinkh()
{
linklist *t,*head;
datatype1 x;
t=(linklist *) malloc(len);
t->next=null;head=t;
printf("请有序输入数据:\n");
scanf(d,&x);
while(x!=end)
{ t=(linklist *) malloc(len);
t->data=x;
t->next=null;
t->next=head->next;
head->next=t;
scanf(d,&x);
}
return(head);
}

已经建好单链表 如何来冒泡排序?

...为什么要用链表不用数组...
我和你学的语言不一样 但智能这样说了
创建两个指针(p,q),指向链头(t).

然后q指向为t的下一个数值
p不动 然后两者比较

做完上述动作
q指向它当前所指的数值的下一个数值
p指向刚才q所指的数值
接着重复比较动作

当然 实现的话就是递归循环

如果用数组
则 for i{1~n}
for {j~n}(两重循环)
if a[j]<a[j+1] then a[j]与a[j+1]交换.