PDA

View Full Version : marge sort code in c#???



sfm_designer
سه شنبه 27 اردیبهشت 1384, 22:50 عصر
سلام
کسی کد marge sort در c# را داره؟ :گیج:
:موفق:

small_programmer
چهارشنبه 28 اردیبهشت 1384, 15:38 عصر
منظورتان merge است؟

sfm_designer
چهارشنبه 28 اردیبهشت 1384, 21:21 عصر
سلام
:oops: بله اشتباه لپی بود...
:موفق:

یاشار
چهارشنبه 28 اردیبهشت 1384, 22:43 عصر
// array of integers to hold values
private int[] a = new int[100];
private int[] b = new int[100];

// number of elements in array
private int x;

// Merge Sort Algorithm
public void sortArray()
{
m_sort( 0, x-1 );
}

public void m_sort( int left, int right )
{
int mid;

if( right > left )
{
mid = ( right + left ) / 2;
m_sort( left, mid );
m_sort( mid+1, right );

merge( left, mid+1, right );
}
}

public void merge( int left, int mid, int right )
{
int i, left_end, num_elements, tmp_pos;

left_end = mid - 1;
tmp_pos = left;
num_elements = right - left + 1;

while( (left <= left_end) && (mid <= right) )
{
if( a[left] <= a[mid] )
{
b[tmp_pos] = a[left];
tmp_pos = tmp_pos + 1;
left = left +1;
}
else
{
b[tmp_pos] = a[mid];
tmp_pos = tmp_pos + 1;
mid = mid + 1;
}
}

while( left <= left_end )
{
b[tmp_pos] = a[left];
left = left + 1;
tmp_pos = tmp_pos + 1;
}

while( mid <= right )
{
b[tmp_pos] = a[mid];
mid = mid + 1;
tmp_pos = tmp_pos + 1;
}

for( i = 0; i < num_elements; i++ )
{
a[right] = b[right];
right = right - 1;
}
}

اولین (http://www.publicjoe.f9.co.uk/csharp/sort04.html) نتیجه جستجو در گوگل