Java 排序数组给出所有0';s
因此,我提出了一种对数组元素进行排序的方法。但是,当我运行程序并调用sort方法时,它只显示一个0的数组。代码如下:Java 排序数组给出所有0';s,java,arrays,sorting,Java,Arrays,Sorting,因此,我提出了一种对数组元素进行排序的方法。但是,当我运行程序并调用sort方法时,它只显示一个0的数组。代码如下: Vector vector = new Vector(length); for (int i = 0; i < length; i++) { for (int j = 0; j < length; j++){ if (vector.elements[i] < vector.elements[j]) {
Vector vector = new Vector(length);
for (int i = 0; i < length; i++) {
for (int j = 0; j < length; j++){
if (vector.elements[i] < vector.elements[j]) {
long temp = vector.elements[j];
vector.elements[i] = vector.elements[j];
vector.elements[j] = temp;
}
}
}
return vector;
Vector向量=新向量(长度);
for(int i=0;i
请帮忙 您的交换是错误的。您不必交换
i
'th和j
'th元素,只需将j
'th元素分配到i
'th位置,并保持j
'th元素不变
应该是:
long temp = vector.elements[i]; // was j
vector.elements[i] = vector.elements[j];
vector.elements[j] = temp;
首先,您没有在向量中插入任何元素。还是让我假设您没有在这里提到该代码。虽然它是不相关的循环。在每一个外环中,最大的元素都在四处移动。如果要按气泡排序,请按照算法进行排序。 应该是,
for (int i = 0; i < length; i++) {
for (int j = i+1; j < length; j++){
if (vector.elements[i] < vector.elements[j]) {
long temp = vector.elements[j];
vector.elements[i] = vector.elements[j];
vector.elements[j] = temp;
}
}
}
for(int i=0;i
其次,它将按降序排序。我在java 8中也找不到.elements[]方法。您的比较技术是错误的。请检查以下内容,我更新了您的代码。希望它能起作用。谢谢
for (int i = 0; i < length-1 ; i++) {
for (int j = i+1; j < length; j++){
if (vector.elements[i] > vector.elements[j]){
long temp = vector.elements[i];
vector.elements[i] = vector.elements[j];
vector.elements[j] = temp;
}
}
}
for(int i=0;ivector.elements[j]){
长温度=向量元素[i];
向量元素[i]=向量元素[j];
向量元素[j]=温度;
}
}
}
它将按升序对数组进行排序。写这个,long temp=vector.elements[i];向量元素[i]=向量元素[j];向量元素[j]=温度;你可以添加一个简单的System.out.println或调试它来查看问题。我交换了
I
和j
,但我得到的向量仍然只有0@Eran。循环本身是否存在问题,没有为变量分配正确的数字?@ShahrokhAryana您是否使用非零值初始化向量。元素数组?是,将其初始化为非零,但是用户可以随时通过程序更改值,但是创建一个新的向量当我运行给定的代码时,它仍然会生成所有0的输出。您能告诉我向量的定义吗?