منبع اصلی نوشتار زیر در این لینک قرار دارد

الگوریتم های مرتب سازی : مفهوم مرتب سازی

sort it logo cmykConverted الگوریتم های مرتب سازی : مفهوم مرتب سازی

الگوریتم های مرتب سازی بخش خیلی مهمی از  برنامه ها رو انجام می دهند و نقش مهمی را را در آموزش الگوریتم به مبتدیان دارند به همین علت تصمیم گرفتیم تعدادی از این الگوریتم ها را که خیلی پر کاربرد هستند معرفی کنیم :

– مفهوم مرتب سازی

bubble sort

-insertion sort

-merge sort

quick sort

-Distribution sorts

-Concurrent sorts

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

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)

می شود.

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

digg الگوریتم های مرتب سازی : مفهوم مرتب سازی  reddit الگوریتم های مرتب سازی : مفهوم مرتب سازی  stumbleupon الگوریتم های مرتب سازی : مفهوم مرتب سازی  yahoo buzz الگوریتم های مرتب سازی : مفهوم مرتب سازی  dzone الگوریتم های مرتب سازی : مفهوم مرتب سازی  facebook الگوریتم های مرتب سازی : مفهوم مرتب سازی  delicious الگوریتم های مرتب سازی : مفهوم مرتب سازی  dotnetkicks الگوریتم های مرتب سازی : مفهوم مرتب سازی  dotnetshoutout الگوریتم های مرتب سازی : مفهوم مرتب سازی  linkedin الگوریتم های مرتب سازی : مفهوم مرتب سازی  technorati الگوریتم های مرتب سازی : مفهوم مرتب سازی  twitter الگوریتم های مرتب سازی : مفهوم مرتب سازی  google buzz الگوریتم های مرتب سازی : مفهوم مرتب سازی  



برچسب ها : , , , , ,

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

به اين صفحه امتياز دهيد