Algo 11
Algo 11
أ حمد تم ول ي
arr start end
void mergeSort(int[] arr, int start, int end) { [9, 5, 1, 4] 0 3
if (start < end) {
int midpoint = (start + end) / 2; midpoint arr start end
[9, 5, 1, 4] 0 1
mergeSort(arr, start, midpoint); 1
mergeSort(arr, midpoint + 1, end); midpoint
0
merge(arr, start, midpoint, end); arr start end
[9, 5, 1, 4] 0 0
}
}
void merge(int[] arr, int start, int midpoint, int end) { arr start end
int i, j, k; [9, 5, 1, 4] 1 1
int left_length = midpoint - start + 1;
int right_length = end - midpoint; arr=[9, 5, 1, 4] start=0 mid=0 end=2
int[] LeftArray = new int[left_length]; left_length = 1 L=[5] R=[9]
int[] RightArray = new int[right_length]; right_length = 1 arr`=[5,9,1,4]
أ حمد تم ول ي Algorithms Analysis and Design from scratch ﻣﻦ ﺗﺤﺖAlgorithms ﲓ ﺗﺤﻠﻴﻞ وﺗ