开发者社区> 问答> 正文

什么是起泡排序算法??

给个具体的代码,谢谢!

展开
收起
知与谁同 2018-07-17 15:07:18 1351 0
4 条回答
写回答
取消 提交回答
  • 起泡算法,其实就是一种排序的方法。就比如有一组无序的数字,那么我们假设用递增将其排序,也就是说从小到大排。那么这时你就用这组数字中第一个数字和他后面的数字比较,如果比后面数字大,就放后面,小就放前面,一直比到最后,那么现在已经有一组排好序的数字,不过这还不是我们要的结果。这时我们再用原先的那组数字的第二个数字和这组排好序的数字再比较。规还是一样的。就这样不停的重复,这样一直到最后就可以得出一组从小到大排好序的数字了。比如有数字:435287,我们将其排序。那我们要先用4和后面的数字比较。4>3,所以在3的后面,4<5要放在5前面,4>2,在放四的前面,4<8,4<7,87都在后面,所以一轮下来我们得到324587这组字,这次我们用原先的那组数字中的第二个的数字也就是3再和得出来的这组数字比较,一轮下来我们又得到234587,这还不是我们要的结果,再用435287中的第三个数字5和234587中的数字比较结果不变,再用435287中的2比较一次还不变,接下来用8比较,结果是234578,当然这时就可以结束了,因为最后一次不比和比的结果是一样的,不信自己可以试试.说了那么多,只想问你一句,你知道什么是起泡了吗?当然这个顺序是可以自己定义的,你也可以递减啊什么,还有字典排序之类的.如果要自己试的话,一楼有代码,不过,代码我想写的那位兄弟可能自己并没有调试,我看了一下应该通不过,这么晚了就不去试了,你参照一下再改改应该会收获不少.
    只是你要记住,起泡只是一个排序的算法,不只是局限于数字排序,也可以是字母啊等等.
    2019-07-17 22:49:30
    赞同 展开评论 打赏
  • C++ ,C版的程序有问题 数组a没有事先定义
    2019-07-17 22:49:30
    赞同 展开评论 打赏
  • Nothing for nothing.
    就是从第一个数开始都和他后面的数比较大小,根据大小来把值互换,然后再比较第二和他后面的大小,后面类推

    #include<iostream.h>
    main()
    { int a[10]={9,8,7,6,5,4,3,2,1,0};
    int t,i,j;
    for(i=0;i<10;i++)
    for(j=i+1;j<10;j++)
    if(a[i]>a[j])
    {t=a[i];
    a[i]=a[j];
    a[j]=t;
    }
    for(i=0;i<10;i++)
    cout<<a[i]<<endl;
    }
    2019-07-17 22:49:30
    赞同 展开评论 打赏
  • 云栖社区聚能聊、问答管理员~发福利、搞怪,八卦我来,论技术、发话题、写博客你上!
    很基础的排序,C++版:(键盘输入输出)
    #include <iostream>
    using namespace std;
    int sort(int n)
    {
    int i,j,temp;
    for (i=1;i<n;i++)
    for (j=0;j<n-i;j++)
    if (a[j]>a[j+1]) {temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
    }
    int main(void)
    {
    int i,n;
    cin>>n;
    int *a=new int[n];
    for (i=0;i<n;i++)
    cin>>a[i];
    sort(n);
    for (i=0;i<n;i++)
    cout<<a[i]<<" ";
    return 0;
    }

    再来一个C语言版:
    #include <stdio.h>
    int sort(int n)
    {
    int i,j,temp;
    for (i=1;i<n;i++)
    for (j=0;j<n-i;j++)
    if (a[j]>a[j+1]) {temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
    }
    int main(void)
    {
    int i,n;
    scanf("%d",&n);
    int *a=new int[n];
    for (i=0;i<n;i++)
    scanf("%d",&n);
    sort(n);
    for (i=0;i<n;i++)
    printf("%d ",a[i]);
    return 0;
    }
    2019-07-17 22:49:30
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载