(مرتب سازی)

روش حباب سازی :

ابتدا داده اول با داده دوم مقایسه می شود اگر داده اول بزرگتر باشد با داده دوم تعویض می شود به همین ترتیب داده دوم با داده سوم ،سوم با چهارم والی آخر مقایسه می شوند ودر صورت نیاز جابجایی صورت می گیرد.

هنگامی که به انتهای لیست برسیم بزرگترین داده در آخرلیست است .روی داده های باقی مانده این عمل را تکرار می کنیم تا درنهایت لیست مرتب شود .

در صورتیکه در یک دور جابجایی صورت نگیرد به این معناست که در لیست مرتب شده است ونیازی به ادامه کار نیست .

Void main()

{

Int a [100],i,j,sw=1,t;

For(i=o;i<100;i++)

Cin >> a[i];

For(i=o;I<99&&sw;i++)

{

Sw=o;

For(j=o;j<(99-i);j++)

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

{

T=a[j];a[j]=a[j+1];a[j+1]=t;sw=1;

}

{

{

مثال :

فرض کنید دو آرایه a,bبه صورت مرتب شده وجود داشته باشند.

برنامه ای بنویسید که این دو لیست را در یکدیگر ادغام کند و در آرایه c قرار دهد بطوریکه c نیز مرتب شود.

Void main()

{

Int a [100],b[100],c[200],I,j,k;

For (i=o,j=o,k=o ;i<100&&j<100;k++)

If(a[i]<b[j])

C[k]=a[i++];

Elsa c[k]=b[j++];

For (;i<100;i++;k++)

C[k]=b[j];

}

تمرین :

برنامه ای بنویسید که 100 عدد را دریافت کند وآنها را به روش انتخابی مرتب نماید (ابتدا کوچکترین داده لیست پیدا می شود وجای آن با داده اول عوض می شود و سپس در داده های باقی مانده کوچکترداده پیدا شده جای آنرا با داده دوم عوض می کنیم این عملیات را تکرار میکنیم تا در نهایت لیست مرتب  می شود .)

Void main()

{

Int a [100],I,j,h;

For (i=o;i<100;i++)

Cin >>a[i];

For (i=o;i<100;i++)

For (i=o;i<100;j++)

If (a[j]>a[i])

{

H=a[i];a[i]=a[j];a[j]=h;

}

}

دیدگاه ها بسته شده است