所以我试图用一个非常简单的算法对数组(或向量。在我的国家,它被称为向量,但是是)进行排序。语言是Java,我正在使用Eclipse。没什么好看的,我知道有更多有效的排序算法,但这不是我现在需要的。这是代码:
public void SortMethod(nbrs) {
int nbrs[];
int v[];
public void sort() {
this.nbrs = nbrs;
this.v=v;
for (int i = 0; i < 10; i++) {
int min = Integer.MIN_VALUE;
int minIndex = -1;
for (int k = i; k < 10; k++) {
if (nbrs[k] < min) {
min = nbrs[k];
minIndex = k;
}
}
v[minIndex] = v[i];
v[i] = min;
}
}
}
在我的另一个项目中:
public class Vector {
public static void main(String[] args) {
int nbrs[] = {2, 4, 67, 40, 32, 28, 9, 8, 55, 72 };
nbrs.sort();
for(int j = 0; j<10; j++){
System.out.println(nbrs[j]);
}
}
}
在排序方法中,我在
的“void”部分出错public void SortMethod(nbrs) {
在“void”处说@是预期的,并且“语法错误,插入Interface-identifier以完成InterfaceHeader。
我也在
收到错误nbrs.sort();
在Vector类中。
感谢任何帮助。
答案 0 :(得分:0)
对不起......你不能简单地在方法(这里,适当的,构造函数)签名中传递nbrs
。你需要声明它是什么数据类型......
public class SortMethod {
int[] nbrs;
// ... the other fields.
// This is a 'Constructor'
public SortMethod (int[] nbrs) {
this.nbrs = nbrs;
}
接下来,在sort()
的调用中,您应该使用以下内容:
// ...
SortMethod sMethod = new SortMethod(nbrs);
sMethod.sort();
// ...
更合适的是,您可以创建一个对数组进行排序的static
方法,这意味着不需要为简单的任务创建对象:
public static void sort (int[] nbrs) {
// ... code here.
}
你可以称之为:
// ...
<class_Name>.sort(nbrs); // from any where within the same package without an import.
// ...
提示:您可以尝试使用库方法实现:
// ...
java.util.Arrays.sort (nbrs);
// ...
答案 1 :(得分:0)
public void SortMethod
需要更改为
public class SortMethod {
//provide getters and setters for nbrs if required
public void sort(int[] nbrs) {
...
}
}
Vector类需要进行以下更改:
public class Vector {
public static void main(String[] args) {
int nbrs[] = {2, 4, 67, 40, 32, 28, 9, 8, 55, 72 };
SortMethod sortNumbers = new SortMethod();
sortNumbers.sort(nbrs);
for(int j = 0; j<10; j++){
System.out.println(nbrs[j]);
}
}
}
答案 2 :(得分:0)
稍微改写了一下你的代码,所以它确实有效:
public class SortMethod {
public static void sort(int[] nbrs) {
for (int i = 0; i < 10; i++) {
int min = Integer.MAX_VALUE;
int minIndex = -1;
for (int k = i; k < 10; k++) {
if (nbrs[k] < min) {
min = nbrs[k];
minIndex = k;
}
}
nbrs[minIndex] = nbrs[i];
nbrs[i] = min;
}
}
}
public class Vector {
public static void main(String[] args) {
int nbrs[] = { 2, 4, 67, 40, 32, 28, 9, 8, 55, 72 };
SortMethod.sort(nbrs);
for (int j = 0; j < 10; j++) {
System.out.println(nbrs[j]);
}
}
}
答案 3 :(得分:0)
使用此
import java.util.Arrays;
Arrays.sort(nbrs);
System.out.println(Arrays.toString(nbrs));