public class Mergesort {
private int[] numbers;
private int[] helper;
private int number;
public void sort(int[] values) {
this.numbers = values;
number = values.length;
this.helper = new int[number];
mergesort(0, number - 1);
}
private void mergesort(int low, int high) {
// check if low is smaller than high, if not then the array is sorted
if (low < high) {
// Get the index of the element which is in the middle
int middle = low + (high - low) / 2;
// Sort the left side of the array
mergesort(low, middle);
// Sort the right side of the array
mergesort(middle + 1, high);
// Combine them both
merge(low, middle, high);
}
}
}
我正在实现这个代码来对数字和字符数组进行排序,但这是我可以走多远,据我所知,这段代码最终会只有数字。如何对它进行排序以对多个字符和数字进行排序?
答案 0 :(得分:0)
您可以使用 char 数据类型而不是 int 。
每个字母/数字在 char 中都有一个整数值。使用它将允许您根据它进行排序,这可能适合也可能不适合。
如果您想定义自己的订单,可以使用比较器界面:
https://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html
虽然使用这种方法可能很复杂。