我写了一个合并排序程序,但是我在从另一个类调用它时遇到了问题。我需要帮助。出于某种原因,在我输入大小和最大数量后,输出中出现黑屏。我相信解决方案很简单,但我自己找不到解决方案 这是对数字进行排序的课程 class MergeSort { public int[] Sort(int[] unsortedSequence) { int[] left; int[] right; int[] result = new int[unsortedSequence.Length]; if (unsortedSequence.Length <= 1) return unsortedSequence; int midPoint = unsortedSequence.Length / 2; left = new int[midPoint]; if (unsortedSequence.Length % 2 == 0) right = new int[midPoint]; else right = new int[midPoint + 1]; for (int i = 0; i < midPoint; i++) left[i] = unsortedSequence[i]; int x = 0; for (int i = midPoint; i < unsortedSequence.Length; i++) { right[x] = unsortedSequence[i]; x++; } left = Sort(left); right = Sort(right); result = merge(left, right); return result; } public static int[] merge(int[] left, int[] right) { int resultLength = right.Length + left.Length; int[] result = new int[resultLength]; int indexLeft = 0, indexRight = 0, indexResult = 0; while (indexLeft < left.Length || indexRight < right.Length) { if (indexLeft < left.Length && indexRight < right.Length) { if (left[indexLeft] <= right[indexRight]) { result[indexResult] = left[indexLeft]; indexLeft++; indexResult++; } else { result[indexResult] = right[indexRight]; indexRight++; indexResult++; } }
2 回答
- 2 回答
- 0 关注
- 132 浏览
添加回答
举报
0/150
提交
取消