所以我正在为我的班级做一个项目,我目前坚持创建一个 QuickSort 类来对 1000 个名称的数组进行排序。我有一个模板,我使用的是我们在课堂上做的以前的实验室,我们应该以此为基础;但是在实验室中,我们使用了一个整数数组,我正在努力解决如何转换它以便它可以与字符串一起使用;名字。感谢您的帮助或任何建议,代码如下。
更新帖子;所以我在我的 Name 类中进行了比较
public int compareTo(Object other) {
int result;
if (name.equals(((Name) other).name))
result = name.compareTo(((Name) other).name);
else
result = name.compareTo(((Name) other).name);
return result;
}
而且我试图重新工作我的快速排序..我正在努力使用交换方法。
private ArrayList<Name> data;
public QuickSort(ArrayList<Name> initialValue){
data=initialValue;
}
public void sort(ArrayList<Name> namelist, int i, int j){
sort(0, data.size()-1);
}
public void sort(int from, int to){
if (from >= to)
return;
int p = partition(from, to);
sort(from, p);
sort( p + 1, to);
}
private int partition(int from, int to){
Name pivot = data.get(from);
int i = from - 1;
int j = to + 1;
while(i<j){
i++; while(data.get(i).compareTo(pivot) < 0) i++;
j--; while(data.get(j).compareTo(pivot) < 0) j--;
if(i<j) swap(i,j);
}
return j;
}
private void swap (int i, int j){
Name temp = data.get(i);
data.equals(i) = data.get(j);
data = temp;
}
特别是 "data.equals(i) = data.get(j) 行和 data = temp; 我确信我在做一些愚蠢而简单的事情。
更新;
private void swap (int i, int j){
Name temp = data.get(i);
data.get(j).equals(data.get(i));
data.get(j).equals(temp);
}
可能吗?