الجمعة، 16 مايو 2014
3:19 ص

merge_sort


#include "stdafx.h"
#include<iostream>
#include<conio.h>
using namespace std;
void sort(int left, int right);
void merge(int left, int mid, int right);
int a[9] = { 75, 40, 10, 90, 50, 95, 55, 15, 65};
int tmp[9];
void sort(int left, int right)
{

if (left < right)
{
int mid = (left + right) / 2;
sort(left, mid);
sort(mid + 1, right);
merge(left, mid, right);
}
}

void merge(int left, int mid, int right)
{
int i = left;
int j = left;
int k = mid + 1;
while (j <= mid&&k <= right)
{
if (a[j] < a[k])
tmp[i++] = a[j++];
else
tmp[i++] = a[k++];
}
while (j <= mid)
tmp[i++] = a[j++];
for (i = left; i < k; i++)
a[i] = tmp[i];
}
void main()
{
sort(0, 8);
cout << "sort array:"<<"\n";
for (int i = 0; i < 9; i++)
cout << a[i] << " ";
_getch();

}

0 التعليقات:

إرسال تعليق