回 帖 发 新 帖 刷新版面

主题:~~~~!!请问哪个高手能告诉小弟我什么是冒泡程序?~~~

我是一名新手  刚学C++程序      今天看到一道题目上面写着“用冒泡来解答”~~~~~请问什么是冒泡程序呀?

回复列表 (共3个回复)

沙发

冒泡是中排序方式吧 叫冒泡法

板凳

谢谢    但是我还是不懂   你能教我怎么用吗?

3 楼


            我三年前写的,你参考一下!

#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <string.h>
using namespace std;

int main()
{
    int i=0,j=0,k=0,a=0,b=0,n=0,m=0,sum=0,array1[256]={0,0},up=0,down=0;
    char message[10]="Y",mode='o';
    cout<<"这是一个升序/降序排序法;输入一组整数进行升序/降序排序,并输出!\n";
    while(1)
    {
        cout<<"请输入一个整数!指定要输入数组的大小!\n";
        cin>>n;
        cout<<"请输入一组整数!小于65535的整数\n";
        for(i=0;i<n;i++)
        {
            cin>>array1[i];
        }
        for(i=0;i<n;i++)
        {
            cout<<"   "<<array1[i];
        }
        cout<<'\n';
        cout<<'\n';
        cout<<"请输入'u',为升序排列,请输入'd',为降序排序"<<'\n';
        cin>>mode;
        switch(mode)
        {
        case 'u': sum=1;
            break;
        case 'd': sum=2;
            break;
        default: cout<<" endd"<<mode<<endl;
        }
        cout<<"sum="<<sum<<"   n="<<n<<'\n';
        if(sum==2)
        {
        for(i=0;i<n;i++)
        {
        for(j=n-1;j>i;j--)
        {
        if(array1[j]>array1[j-1])
        {
            down=array1[j-1];
            array1[j-1]=array1[j];
            array1[j]=down;
        }
        }
        for(m=0;m<n;m++)
        {  
            cout<<"   "<<array1[m];
        }
            cout<<'\n';
        }
        }
        if(sum==1)
        {
        for(a=0;a<n;a++)
        {
        for(b=n-1;b>a;b--)
        {
        if(array1[b]<array1[b-1])
        {
            up=array1[b];
            array1[b]=array1[b-1];
            array1[b-1]=up;
        }
        }
        for(m=0;m<n;m++)
        {  
            cout<<"   "<<array1[m];
        }
            cout<<'\n';
        }
        }
        cout<<endl<<endl<<endl;
        if(n>0)
        {
        for(i=0;i<8;i++)
            cout<<"     "<<array1[i]; 
        }
        cout<<'\n';
        if(n>8)
        {
            for(i=1;i<n/8;i++)
            {
                for(j=0;j<8;j++)
                {
                    cout<<"   "<<array1[8*i+j];
                }
                cout<<'\n';
            }
        }
        if(n>8 && n%8!=0)
        {
            if(n>16)
            {
                for(m=1;m<=n%8;m++)
                    cout<<"   "<<array1[8*i+j+m];
            }
            else if(n<=16 && n>8)
            {    for(m=0;m<n%8;m++)
            cout<<"   "<<array1[8+m];
            }
        }
        cout<<'\n';
        cout<<"是否继续?  Y/N!"<<'\n';
        cin>>message;
        if(!strcmp(message,"n") || !strcmp(message,"N"))
        {
            break;
        }
        for(k=0;k<256;k++)
        {array1[k]=0;
        }
    }
    cout<<endl;
    system("pause");
    return 0;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册