java - 升序合并排序到降序
问题描述
正如你所看到的,目前我被困在这个合并排序问题上,我不知道如何将这个升序程序转换为相同格式的降序,如果有人可以帮助我,那你真的很好。我是这个排序过程的新手,我正在慢慢学习,目前我是一名学生。非常感谢您的帮助!
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++;
}
}
}
解决方案
您需要做的就是更改将项目if (leftArray[leftIndex] < rightArray[rightIndex])
与
if (leftArray[leftIndex] >= rightArray[rightIndex])
推荐阅读
- c# - ILogger 显示不正确的货币符号
- java - 在 Json 中导航 (Java)
- yii2 - 如何在列表框中制作占位符
- python - 按添加的字段对查询集进行排序
- javascript - 如何在选择输入中自动选择下拉列表的第一个值?
- hyperledger-fabric - Hyperledger Composer 参与者创建验证
- qt - 在 QQuickWidget 中显示 QQmlComponent
- javascript - 在通过服务器运行的 Web 应用程序上下载文件?(python、JSON、jquery?)
- java - java - 在Java的OpenCSV中使用CSVWriter写入CSV文件时如何包装单元格?
- r - 使用格式化表根据另一列的值为列着色