ספט.18

מיון מיזוג - Merge Sort

מיון מיזוג - Merge Sort

מיון מיזוג (באנגלית: Merge Sort) הוא אלגוריתם מיון רקורסיבי קל למימוש המתבסס על קלות מיזוגם של מערכים ממוינים.

  1. public int[] mergeSort(int[] array) {
  2. if (array.Length <= 1)
  3. return array;
  4. int middleIdx = array.Length / 2;
  5. int[] leftHalf = array.Take(middleIdx).ToArray();
  6. int[] rightHalf = array.Skip(middleIdx).ToArray();
  7. return mergeSortedArrays(mergeSort(leftHalf), mergeSort(rightHalf));
  8. }
  9. public int[] mergeSortedArrays(int[] leftHalf, int[] rightHalf) {
  10. int[] sortedArray = new int[leftHalf.Length + rightHalf.Length];
  11. int k = 0;
  12. int i = 0;
  13. int j = 0;
  14. while (i < leftHalf.Length && j < rightHalf.Length) {
  15. if (leftHalf[i] <= rightHalf[j])
  16. sortedArray[k++] = leftHalf[i++];
  17. else
  18. sortedArray[k++] = rightHalf[j++];
  19. }
  20. while (i < leftHalf.Length)
  21. sortedArray[k++] = leftHalf[i++];
  22. while (j < rightHalf.Length)
  23. sortedArray[k++] = rightHalf[j++];
  24. return sortedArray;
  25. }


תגיות:
שתף את הסיפור הזה:

תגובות(0)

השאירו תגובה

קפטצ'ה לא מתאימה

תגובה