 Merge Sort algoritması için sözde kod yazın.
MergeSort(A, startIndex, endIndex): // Dizide sadece bir eleman varsa, return if startIndex == endIndex: return middleIndex = (startIndex + endIndex) / 2 // Dizinin sol yarısını sırala MergeSort(A , startIndex, middleIndex) // Dizinin sağ yarısını sırala MergeSort(A, middleIndex + 1, endIndex) // Sıralanan iki diziyi birleştir Merge(A, startIndex, endIndex) Merge(A, startIndex, endIndex): middleIndex = (startIndex + endIndex) / 2 leftIndex = startIndex rightIndex = middleIndex + 1 // Sıralanan diziyi tutmak için geçici dizi tempArray[] // Aralıkta i için dizinin her iki yarısını da yineleyin(startIndex, endIndex+1): // Sol yarının yinelemesi bittiyse, leftIndex > middleIndex ise sağ yarısından ekleyin: tempArray[i] = A[rightIndex] rightIndex++ // Sağ yarının yinelemesi bittiyse, rightIndex > endIndex ise sol yarısından ekleyin: tempArray[i] = A[leftIndex] leftIndex++ // Geçerli öğeyi karşılaştırın ve daha küçük öğeyi ekleyin if A[leftIndex] < A[rightIndex]: tempArray[i] = A[leftIndex] leftIndex++ else: tempArray[i] = A[rightIndex] rightIndex++ / / Aralıktaki i için tempArray'i tekrar A'ya kopyalayın(startIndex, endIndex+1): A[i] = tempArray[i]