Java 升序合并排序到降序
正如你们所看到的,伙计们,我现在被这个合并排序问题困住了,我不知道如何将这个升序程序转换成降序的相同格式,如果有人能帮助我,你们真是太好了。我是一个新的排序过程,我学习缓慢的时间,目前我是一名学生。非常感谢你们的帮助Java 升序合并排序到降序,java,mergesort,Java,Mergesort,正如你们所看到的,伙计们,我现在被这个合并排序问题困住了,我不知道如何将这个升序程序转换成降序的相同格式,如果有人能帮助我,你们真是太好了。我是一个新的排序过程,我学习缓慢的时间,目前我是一名学生。非常感谢你们的帮助 private static void mergeSort(int[] array, int low, int high) { if (high <= low) return; int mid = (low + high) / 2;
private static void mergeSort(int[] array, int low, int high)
{
if (high <= low)
return;
int mid = (low + high) / 2;
mergeSort(array, low, mid);
mergeSort(array, mid + 1, high);
merge(array, low, mid, high);
}
private static void merge(int[] array, int low, int mid, int high)
{
int leftArray[] = new int[mid - low + 1];
int rightArray[] = new int[high - mid];
for (int i = 0; i < leftArray.length; i++)
leftArray[i] = array[low + i];
for (int i = 0; i < rightArray.length; i++)
rightArray[i] = array[mid + i + 1];
int leftIndex = 0;
int rightIndex = 0;
for (int i = low; i < high + 1; i++)
{
if (leftIndex < leftArray.length && rightIndex < rightArray.length)
{
if (leftArray[leftIndex] < rightArray[rightIndex])
{
array[i] = leftArray[leftIndex];
leftIndex++;
}
else
{
array[i] = rightArray[rightIndex];
rightIndex++;
}
}
else if (leftIndex < leftArray.length)
{
array[i] = leftArray[leftIndex];
leftIndex++;
}
else if (rightIndex < rightArray.length)
{
array[i] = rightArray[rightIndex];
rightIndex++;
}
}
}
私有静态void合并排序(int[]数组,int低位,int高位)
{
if(high您只需将比较项目的行if(leftArray[leftIndex]
更改为
if (leftArray[leftIndex] >= rightArray[rightIndex])
没有什么真正的改变,而不是这种比较
if (leftArray[leftIndex] < rightArray[rightIndex])
if (leftArray[leftIndex] > rightArray[rightIndex])
其余代码保持不变。提示:寻找一个地方(只有一个地方)比较leftArray[…]
和rightArray[…]
,然后反向测试。你好,凯文爵士!谢谢你,我已经找到了!就是这一部分!祝你好运,先生!如果(leftArray[leftIndex]