PTA---冒泡排序

jmuCIE 软件23 2023-11-06 21:17:31

本题目要求读入N个整数,采用冒泡排序(上升法,即每轮得到一个最小值)进行排序,输出前3轮排序后的结果。

输入格式:

输入不超过100的正整数N和N个整数(空格分隔)。

输出格式:

输出三行,第一行为第一轮排序结果,第二行为第二轮排序结果,第三行为第三轮排序结果。数据间用一个空格分隔。

为简便起见,最后一个元素后也有一个空格。

输入样例:

5
2 5 4 1 3

输出样例:

1 2 5 4 3 
1 2 3 5 4 
1 2 3 4 5 

冒泡排序,是一种计算机科学领域的较简单的 排序算法 。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

根据输出样例 ,可以得知该排序由后向前进行排序

则可将数组从最后一个数开始往前进行比较,如果较小,则与前一个数进行交换

以此类推直到第二个数和第一个数比较完成

for(int i=n;i>=2;i--){
    if(list[i]<list[i-1])

{
    ex=list[i];
    list[i]=list[i-1];
    list[i-1]=ex;
    }

}

for(int i=1;i<=n;i++)
    {

printf("%d ",list[i]);

}

这样我们就得到了一轮的排序结果

题目要求输出三轮的排序结果

则可设置变量 cnt(count)用于计数

每输出一轮排序结果计一次数

直到cnt等于三时跳出循环

#include<stdio.h>
int main(){
    int n;
    int list[100];
    int cnt=0;
    int ex;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
{
        scanf("%d",&list[i]);
    }
    for(int j=1;j<n;j++)
{
    for(int i=n;i>=2;i--)
{
    if(list[i]<list[i-1])
{
    ex=list[i];
    list[i]=list[i-1];
    list[i-1]=ex;
    }
}
    for(int i=1;i<=n;i++)
    {
printf("%d ",list[i]);
}
        cnt++;
    if(cnt==3)
        break;
        printf("\n");
        }
return 0;}

这样我们就得到要排序数组的前三种排序

...全文
182 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
张老师 2023-11-16
  • 打赏
  • 举报
回复

讨论一个排序算法,还可以分析一下其特点、不足和改进。

数据结构与算法之冒泡排序pta:基于C语言的编程实践与测试 数据结构与算法之冒泡排序pta:基于C语言的编程实践与测试 数据结构与算法 本资源是一本数据结构与算法之冒泡排序pta的编程实践与测试教程,旨在通过C语言这一高效的编程语言,来实现和测试冒泡排序算法,涵盖了冒泡排序的原理、方法、代码、优化、复杂度等内容,以及冒泡排序的实际应用和案例分析。本资源适合数据结构与算法学习者和考生使用,帮助他们通过项目实践来加深对冒泡排序算法的理解和掌握,提高编程的能力和水平。 提供了多种算法演示和验证的功能,如输入和输出待排序的数据,显示冒泡排序的过程和结果,验证冒泡排序的正确性和效率,比较冒泡排序和其他排序算法的优劣等。本资源适合算法演示和验证的学习者和工程师使用,帮助他们通过Web界面来进行冒泡排序pta的演示和验证,提高算法的知识和水平。 采用Python这一简洁易用的编程语言,从基础到进阶,逐步讲解了冒泡排序算法的分析、讲解和代码,以及冒泡排序算法的优化和扩展等方面。本资源适合算法教学和学习的教师和学生使用,帮助他们通过视频和代码来观看和学习冒泡排序pta的分析和讲解,提高算法的兴趣和能力。

198

社区成员

发帖
与我相关
我的任务
社区描述
程序设计基础课程教学群
c语言c++ 高校 福建省·厦门市
社区管理员
  • xmzq001
  • jiangxiaoju
  • 星落化尘
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

请加入学习社区的软件23级同学修改社区昵称为学号+姓名,以便登记作业提交情况。

试试用AI创作助手写篇文章吧