do..while循环在气泡排序中进行链表的排序

abpan8

我试图理解此代码,但我不理解该do..while循环while(swapped)停止while循环的条件是什么?

/* Bubble sort the given linked list */
void bubbleSort(struct Node *start) 
{ 
    int swapped; 
    struct Node *ptr1; 
    struct Node *lptr = NULL; 

    /* Checking for empty list */
    if (start == NULL) 
        return; 

    do
    { 
        swapped = 0; 
        ptr1 = start; 

        while (ptr1->next != lptr) 
        { 
            if (ptr1->data > ptr1->next->data) 
            {  
                swap(ptr1, ptr1->next); 
                swapped = 1; 
            } 
            ptr1 = ptr1->next; 
        } 
        lptr = ptr1; 
    } 
    while (swapped); 
} 
海鳗

在迭代中没有交换任何元素时,循环将停止。正如您在循环开始时所看到的那样,将其swapped设置为0。当无法交换元素时,程序将进入if (ptr1->data > ptr1->next->data)条件,并且在这种情况下swapped将其设置为1(C的C版本true)。循环将一直持续到swapped1。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

do..while循环在气泡排序中进行链表的排序

来自分类Dev

气泡排序双链表

来自分类Dev

气泡排序链表

来自分类Dev

对每个do循环(字母)红宝石导轨进行排序

来自分类Dev

链表和(字母)气泡排序

来自分类Dev

双向链表的do ... while循环问题

来自分类Dev

使用C#在链表中进行奇偶排序

来自分类Dev

气泡排序进入无限循环

来自分类Dev

Java气泡排序-无限循环

来自分类Dev

气泡排序,无法进入循环

来自分类Dev

使用MIPS进行气泡排序

来自分类Dev

卡在链表中的无限 Do-while 循环中

来自分类Dev

气泡排序使用while循环。输出中不存在最后一种排序

来自分类Dev

使用do while循环进行setbackground加载

来自分类Dev

在C ++中对链表进行排序

来自分类Dev

链表:如何对双向链表进行排序?

来自分类Dev

有没有办法使用while循环和any方法在Ruby中进行冒泡排序算法?

来自分类Dev

优化排序while循环

来自分类Dev

合并排序循环链表C

来自分类Dev

如何在while循环中对元素进行排序?

来自分类Dev

do while循环问题

来自分类Dev

应用do while循环

来自分类Dev

do while循环结构

来自分类Dev

do/while 循环问题

来自分类Dev

按多个参数对链表进行排序

来自分类Dev

替换链表中的项目并进行排序

来自分类Dev

在C中按升序对链表进行排序

来自分类Dev

使用qsort算法对链表进行排序

来自分类Dev

使用链表进行存储桶排序