23 thg 10, 2010

Chèn một phần tử vào dãy tăng dần để được một dãy tăng dần

C

Chèn một phần tử vào dãy tăng dần để được một dãy tăng dần

Đăng ngày: 07:25 10-01-2010
Thư mục: C++
/* Sap xep mot day tang dan roi chen mot phan tu x vao day sao cho khong lam mat tinh chat tang dan cua day */
/* Coding by onlinexanh@yahoo.com */

#include<iostream.h>
#include<conio.h>

void main()
{
    clrscr();
    int *a; //khai bao mang nguyen
    int n,i,j,temp,x;

    cout<<"Nhap so phan tu cua day: "; cin>>n;
    a = new int[n+1]; //khoi tao day nguyen gom n+1 phan tu (thua 1 phan tu)
    for(i=0;i<n;i++) {cout<<"Nhap a["<<i<<"]: "; cin>>a[i];}

    //Sap xep day tang dan (Giai thuat Noi bot)
    for(i=n-1;i>0;i--)
        for(j=1;j<=i;j++)
            if(a[j]<a[j-1])
                {temp=a[j]; a[j]=a[j-1]; a[j-1]=temp;} //doi cho a[j] va a[j-1];

    cout<<"\nDay da cho duoc sap xep tang dan nhu sau:\n";
    for(i=0;i<n;i++) cout<<a[i]<<" ";

    cout<<"\n\nBay gio hay nhap x: "; cin>>x;
    for(i=n;i>=0;i--)
        if(a[i-1]>x) a[i]=a[i-1];
        else break;

    a[i]=x;

    cout<<"\nDay tao thanh khi chen them phan tu x la:\n";
    for(i=0;i<n+1;i++) cout<<a[i]<<" ";

    getch();
}

Không có nhận xét nào:

Đăng nhận xét