老子716 2022-06-12 03:28 采纳率: 75%
浏览 463

设待排序的表有10个元素,其关键字分别为(9,8,7,6,5,4,3,2,1,0),实现冒泡排序算法,用以上数据进行测试病输出各趟的排序结果

设待排序的表有10个元素,其关键字分别为(9,8,7,6,5,4,3,2,1,0),实现冒泡排序算法,用以上数据进行测试病输出各趟的排序结果。
运行结果要求直接能在控制台输出,使用c++编写。

  • 写回答

2条回答 默认 最新

  • 关注

    线性表冒泡排序代码如下:

    img

    代码:

    #include <iostream>
    using namespace std;
    typedef int ElemType;
    typedef struct _data
    {
        ElemType data;
        struct _data* next;
    }LinkNode, * LinkList;
    
    
    //显示链表
    void showList(LinkList head)
    {
        LinkList p = head->next;
        while (p)
        {
           cout << p->data<<" ";
            p = p->next;
        }
        cout << endl;
    }
    
    //冒泡排序
    void bubble_sort(LinkNode* L)
    {
        LinkNode* p, * tail, * q;
        int tms = 1;
        tail = NULL;
        while ((L->next->next) != tail)
        {
            p = L;
            q = L->next;
            while (q->next != tail)
            {
                if (q->data > q->next->data) //升序排列
                {
                    p->next = q->next;
                    q->next = q->next->next;
                    p->next->next = q;
                    q = p->next;
                   
                }
                q = q->next;
                p = p->next;
            }
            cout << "第" << tms << "遍排序结果:";
            tms++;
            showList(L); //显示链表
            tail = q;
        }
    
    }
    
    
    int main()
    {
        ElemType a[] = { 9,8,7,6,5,4,3,2,1,0 };
        LinkList head, p, t, maxnode, prenode;
        int len = sizeof(a) / sizeof(int); //得到数组的大小
        int i;
    
        head = (LinkList)malloc(sizeof(LinkNode)); //创建头节点
        head->next = 0;
        p = head;
    
        //用数组元素构建链表
        for (i = 0; i < len; i++)
        {
            t = (LinkList)malloc(sizeof(LinkNode));
            t->next = 0;
            t->data = a[i];
            //节点插入链表
            p->next = t;
            p = t;
        }
       
        //链表排序
        bubble_sort(head);
    
        //遍历排序后的链表
        cout << "最终结果:";
        showList(head);
        return 0;
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月12日

悬赏问题

  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 关于#c++#的问题:(2)运算二叉树·表达式一般由一个运算符和两个操作数组成:(相关搜索:二叉树遍历)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)