Untitled
unknown
plain_text
16 days ago
1.1 kB
0
Indexable
Never
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; int left_arr[100]; int right_arr[100]; int result_arr[200]; int arr[]={10, 50, 40, 67, 1, 5, 10, 3, 9}; void merge(int arr[], int left, int mid, int right) { int i; int j; for(i=0; i<=mid-left; i++) left_arr[i]=arr[i+left]; for(j=0; j<=right-(mid+1); j++) right_arr[j]=arr[j+mid+1]; i = j = 0; int k=0; while(i<=mid-left || j<=right-(mid+1)) { if(i<=mid-left && j<=right-(mid+1)){ if(left_arr[i]<=right_arr[j]){ arr[left+k]=left_arr[i]; i++; k++; }else{ arr[left+k]=right_arr[j]; j++; k++; } }else if(i<=mid-left){ arr[left+k]=left_arr[i]; i++; k++; }else if(j<=right-(mid+1)){ arr[left+k]=right_arr[j]; j++; k++; } } } void merge_sort(int arr[], int left, int right) { if(left>=right) return; int mid = (left + right) / 2; merge_sort(arr, left, mid); merge_sort(arr, mid+1, right); merge(arr, left, mid, right); } int main() { merge_sort(arr, 0, 8); return 0; }
Leave a Comment