开发者社区> 问答> 正文

选择排序法跟冒泡排序法有什么区别

选择排序法跟冒泡排序法有什么区别

展开
收起
知与谁同 2018-07-19 13:00:41 2821 0
1 条回答
写回答
取消 提交回答
  • 静静的看着你们
    先上选择法和冒泡法:
    1.选择法
    #include<stdio.h>

    void main()
    {
    int i,j,min,temp;
    int a[10];
    printf("请输入十个整数:");
    for(i=0;i<=9;i++)
    scanf("%d",&a[i]);
    for(i=0;i<9;i++)
    {
    min=i;
    for(j=i+1;j<=9;j++)
    {
    if(a[min]>a[j])
    {
    min=j;
    }
    temp=a[j];
    a[j]=a[min];
    a[min]=temp;
    }
    }
    for(i=0;i<=9;i++)
    printf("%4d",a[i]);
    }
    2.冒泡法
    #include<stdio.h>

    void main()
    {
    int i,j,temp;
    int a[10];
    printf("请输入十个整数:");
    for(i=0;i<=9;i++)
    scanf("%d",&a[i]);
    for(i=0;i<9;i++)
    for(j=9;j>i;j--)
    {
    if(a[j]<a[j-1])
    {
    temp=a[j];
    a[j]=a[j-1];
    a[j-1]=temp;
    }
    }/*
    for(j=0;j<9-i;j++)
    {
    if(a[j]>a[j+1])
    {
    temp=a[j];
    a[j]=a[j+1];
    a[j+1]=temp;
    }
    }大的气泡往下沉,小的气泡往上浮。。。注意:是a[j-1]还是a[j+1];
    深刻了解。。。
    */
    for(i=9;i>=0;i--)
    printf("%4d",a[i]);
    }
    通过这两个程序,可以发现他们的编程还是有些区别的,但是总结下:
    相同点:
    1.都要通过n-1组排出具有n个数的顺序;
    2.都是通过逐个相比,比出最值的;
    。。。
    不同点:
    1.冒泡法,顾名思义就是把小的泡冒到上面,大的泡沉到下面,最值在中间和其他的值交换;
    而选择法,是假定了一个最值,所以最值和其他的值的交换就发生在假定最值的地方;
    。。。
    其实冒泡法和选择法的区别不大,都是效率比较低的方法。
    2019-07-17 22:50:04
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载