گروه کامپیوتر دانشگاه آزاد

اساتید و دانشجویان دانشگاه آزاد اسلامی

گروه کامپیوتر دانشگاه آزاد

اساتید و دانشجویان دانشگاه آزاد اسلامی

بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِیمِ
زکات علم، نشر آن است. گروه کامپیوتر دانشگاه آزاد با هدف خدمت به دانش آموزان ، دانشجویان و آنهایی که علاقه به برنامه نویسی و طراحی و کلیه امور تخصصی کامپیوتر دارند با هدف نشر علم خدمت رسانی کند امید است کاربران در جهت تحقق این اهداف والا یار و همدم ما باشند . . .

آخرین نظرات

مرتب سازی حبابی

در این پست ما به معرفی  یک الگوریتم مرتب سازی-sort  ساده  می پردازیم که از مشهور ترین و ساده ترین الگوریتم های مرتب سازی است  و پیاده سازی و درک آن آسان است .

مرتب سازی یعنی این که یک گروه از اطلاعات را بر اساس یکی از شاخص هایش از بزرگ به کوچک یا بر عکس بنویسیم.

این  هم کد تابع  مرتب سازی - sort  است که دو آرگومان دارد یکی آرایه و دیگری طول آرایه :

void any_sort( int A[],int n)
{
	int i;
	int j;
	int temp;

	for ( i = 0; i < n-1; i++)
	{
		for ( j = i+1; j < n; j++)
		{
			if( A[i] > A[j])
			{
				temp = A[i];
				A[i] = A[j];
				A[j] = temp;
			}
		}
	}
}

همین طور که در کد بالا می بینید دو حلقه for داریم که هر کدام مخصوص یک counter هستند اولی i  را جلو می برد و به علاوه یک می کند و بعدی j  را جلو می برد ، در این مرتب سازی  خانه  i  ام آرایه در نظر گرفته می شود و با خانه های بعدی خود که همان خانه های  j ام هستند مقایسه می شوند اگر خانه i  ام بزرگ تر از خانه j ام بود مقدار خانه i ام با مقدار خانه j  ام عوض می شود.

فرض کنید آرایه ای  A  به طول ۵ و اعضای زیر را داریم اگر مرتب سازی را انجام دهیم مرحله به مرحله این گونه پیش می رود :

A[5]= {8,5,6,1,4}

8  ۵  ۶  ۱  ۴

۵  ۸  ۶  ۱  ۴

۱  ۸   ۶  ۵  ۴

۱  ۶  ۸  ۵  ۴

۱   ۵  ۸  ۶  ۴

۱  ۴  ۸  ۶  ۵

۱  ۴  ۶   ۸  ۵

۱  ۴  ۵  ۸  ۶

۱  ۴  ۵  ۶  ۸

در زیر تابع مرتب سازی - sort را می بینید که در main برنامه برای مثال یک آرایه داده ایم که sort – مرتب می کند و آرایه را قبل و بعد از مرتب سازی نشان می دهد:

//  any sort.cpp : open-mind.ir
//

#include "stdafx.h"
#include 

using namespace std;

void any_sort( int A[],int n)
{
	int i;
	int j;
	int temp;

	for ( i = 0; i < n-1; i++)
	{
		for ( j = i+1; j < n; j++)
		{
			if( A[i] > A[j])
			{
				temp = A[i];
				A[i] = A[j];
				A[j] = temp;
			}
		}
	}
}

int main()
{
	int i = 0;
	int A[5]={8,5,6,1,4};
	//show array before sort
	for( i = 0; i < 5; i++)
	{
		cout<< A[i]<<" ";
	}
	cout<<endl;
	//sort function
	any_sort(A,5);
	//show array after sort
	for( i = 0; i < 5; i++)
	{
		cout<< A[i]<<" ";
	}
	cout<<endl;

	return 0;
}

هزینه ی این الگوریتم برابر این

O(N^2)

می شود. تشکر از این که ما را دنبال می کنید.

نظرات (۱)

#include<iostream>
using namespace std;
int main()
{ int b,o;
int c;
int a,d,s,e,f,m,n,g,serch,l,i,V;
cout<<"tedad adadi ke mikhahid ra vared konid:";
cin>>b;
int v[b];
for(m=0;m<b;m++){
cout<<"adad"<<m+1<<":";
cin>>v[m];
}
int k;
k=b*b;
for(int k,p=0;p<=k;p++){
if(0!=p%2){
for(l=b;l<=0;l--){

if(v[l-1]==0){
}
else if(v[l]<v[l-1]){
m=v[l];
v[l]=v[l-1];
v[l-1]=m;

}}}}
for(int g=0;g<=k;g++){
if(0==g%2){

for(c=0;c<=b;c++){

if(v[c+1]==0){
}
else if(v[c]>v[c+1]){
m=v[c];
v[c]=v[c+1];
v[c+1]=m;
}}}}










for(e=0;e<b;e++){
cout<<v[e]<<"\n";

}}
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
تجدید کد امنیتی