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

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

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

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

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

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

آرشیو سایت
ترم بندی کامپیوتر

تغییر در آرشیو سایت و دسته بندی مطالب

نمایش داده می شوید!
اخطار جدی به کپی برداران از سایت
پلیس سایبری
طبق ماده (12) قانون جرايم رايانه اي: هرکس به طور غیرمجاز داده ای متعلق به دیگری را برباید، چنانچه عین داده‌ ها در اختیار صاحب آن باشد، به جزای نقدی از یک تا بیست میلیون ریال و در غیر این صورت به حبس از نود و یک روز تا یک سال یا جزای نقدی از پنج تا بیست میلیون ریال یا هر دو مجازات محکوم خواهد شد.
گالری تبلیغات
  • 01بازرگانی قربانی
  • 01 اللهم عجل لولیک الفرج
  • 01مدافعان حرم

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

در این پست ما به معرفی  یک الگوریتم مرتب سازی-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)

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


نظرات (۰)

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