设待排序的表有10个元素,其关键字分别为(9,8,7,6,5,4,3,2,1,0),实现冒泡排序算法,用以上数据进行测试病输出各趟的排序结果。
运行结果要求直接能在控制台输出,使用c++编写。
![](https://profile-avatar.csdnimg.cn/6a1ae9fe99af4963b7475dbaf8578bb7_weixin_70123323.jpg!4)
设待排序的表有10个元素,其关键字分别为(9,8,7,6,5,4,3,2,1,0),实现冒泡排序算法,用以上数据进行测试病输出各趟的排序结果
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术专家团-小桥流水 2022-06-12 10:01关注
线性表冒泡排序代码如下:
代码:
#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无用
悬赏问题
- ¥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)