c++算法联系,冒泡排序,bubble sort,插入排序,insert sort,

时间:2020-12-28 23:45:22

#include <iostream.h>

#define  MAX 100



void dispaly(int a[],int n)

{

    for(int i=0;i<n;i++)

    {

        cout<<"a["<<i<<"]="<<a[i]<<" ";

    }

    cout<<endl;

    

}



// bubble sort 冒泡排序

void bubblesort(int a[],int n)

{

    int i,j;

    

    for(i=0;i<n-1;i++)

    {

        for(j=0;j<n-i-1;j++)

        {

            if(a[j]>a[j+1])

            {

                int temp=a[j];

                a[j]=a[j+1];

                a[j+1]=temp;

            }



        }

        dispaly(a,n);

    }

}



//insert sort 插入排序



void insertSort(int a[],int n)

{

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

    {

        //for(int j=i;j>0 &&a[j]<a[j-1];j--)

        {

        //    int temp=a[j-1];

        //    a[j-1]=a[j];

        //    a[j]=temp;

        }

        



        

        for(int j=0;j<i &&a[i]<a[i-j-1];j++)

        {

            int temp=a[j-1];

            a[j-1]=a[j];

            a[j]=temp;

        }

        dispaly(a,n);

    }

}

void selectSort(int a[],int n)

{



    for(int i=0;i<n;i++)

    {

        int min=a[i];

        int index=i;

        for(int j=i;j<n-1;j++)

        {

            if(min>a[j+1])

            {

                min=a[j+1];

                index=j+1;

            }

        }

        int temp=a[i];

        a[i]=min;

        a[index]=temp;



    }



    /*

    for(int i=0;i<n;i++)

    {

        int index=i;

        for(int j=i;j<n-1;j++)

        {

            if(a[index]>a[j+1])

            {

                index=j+1;

            }

        }

        int temp=a[i];

        a[i]=a[index];

        a[index]=temp;

    }

    */

}



int main ()

{



    int a[MAX],i;

    for(i=0;i<MAX;i++)

    {

        cin>>a[i];

        if(a[i]==-0)

            break;

    }

    //dispaly(a,i);

    //cout<<"================start sort=================="<<endl;

    //bubblesort(a,i);

    //cout<<"================result======================"<<endl;

    //dispaly(a,i);



    //insertSort(a,i);



    selectSort(a,i);

    dispaly(a,i);

    

    return 0;

}