void BubbleSort(int *a, int len)
{
LinkNode *head;
head = CreateLink(a, len);
LinkNode *n = head->next; //定义n结点
LinkNode *m = n->next; //定义n的下一个结点, 比较结点
LinkNode *prev = head; //定义n结点的前驱结点, 方便结点的交换
LinkNode *rear = NULL; //定义尾结点, 每次把最大的沉到底部之后, 尾结点前移一位
while(head->next->next != rear)
{
while(m->next != rear)
{
if(n->data > m->data)
{
//如果n>m, 在n结点前插入一个值为m新的结点
LinkNode *temp = (LinkNode *)malloc(sizeof(LinkNode));
temp->data = m->data;
prev->next = temp;
prev = prev->next;
temp->next = n;
if(m->next != NULL)
{
//删除m结点
LinkNode *q = m->next;
m->next = q->next;
m =
单链表实现冒泡排序,C++
最新推荐文章于 2022-08-18 16:00:46 发布