selection sort و merg sort

sogoli

Active Member
سلام
من دنبال الگوریتم یا برنامه selection sort و merg sort هستم.ممنون میشم راهنمایی فرمایید.
 

mo.esmp

Member
روش مرتب سازی ادغام از الگوریتم تقسیم و حل (divide-and-conqure) برای مرتب کردن داده ها استفاده می کنه. در این الگوریتم مساله به چند جزء کوچکتر تقسیم می شه. هر کدوم از این قسمتها رو به طور مجزا حل کرده ، و با ترکیب اونها به مساله اصلی می رسیم. و اما طرح کلی مرتب سازی ادغام:

در این روش داده ها به دو قسمت مساوی تقسیم می شن. و هر کدوم از این قسمتها - به صورت بازگشتی - مرتب ، و با ادغامشون دادها بصورت کامل مرتب می شن.
[
CODE]void merge_sort ( int arr[ ] , int low , int high )

{

if ( low >= high )

return ;

int mid = ( low + high ) / 2 ;

merge_sort ( arr , low , mid ) ;

merge_sort ( arr , mid + 1 , high ) ;

merge_array ( arr , low , mid , high ) ;

}

void merge ( int arr[ ] , int low , int mid , int high )

{

int i , j , k , t ;

j = low ;

for ( i = mid + 1 ; i <= high ; i ++ )
{

while ( arr[ j ] <= arr[ i ] && j < i )
j ++ ;

if ( j == i )
break ;

t = arr[ i ] ;

for ( k = i ; k > j ; k -- )
arr[ k ] = arr[ k - 1 ] ;

arr[ j ] = t ;
}
}[/CODE]​

و برای مرتب سازی انتخابی
کد:
http://fa.wikipedia.org/wiki/%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85_%D9%85%D8%B1%D8%AA%D8%A8%E2%80%8C%D8%B3%D8%A7%D8%B2%DB%8C

کد:
http://fa.wikipedia.org/wiki/%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85_%D9%85%D8%B1%D8%AA%D8%A8%E2%80%8C%D8%B3%D8%A7%D8%B2%DB%8C#.D9.81.D9.87.D8.B1.D8.B3.D8.AA_.D8.A7.D9.84.DA.AF.D9.88.D8.B1.DB.8C.D8.AA.D9.85.E2.80.8C.D9.87.D8.A7.DB.8C_.D9.85.D8.B1.D8.AA.D8.A8.E2.80.8C.D8.B3.D8.A7.D8.B2.DB.8C
 

جدیدترین ارسال ها

بالا