Java 根据用户输入拆分数组
有一个整数数组,即Java 根据用户输入拆分数组,java,arrays,integer,Java,Arrays,Integer,有一个整数数组,即int[]integerArray={3,7,-9,1,98,-5,0} 用户将输入一个值(即0),所需的输出应为 所有小于输入值的值都应位于数组的左侧,并且 大于输入键的值应位于数组的右侧 所需输出:{-9,-5,0,1,3,7,98} 不需要对值进行排序,它可以是:{-5,-9,0,98,1,5,3} 我的做法: 我必须使用整数数组,并将键与数组的值进行比较 若它小于输入,若它大于输入,它将转到左数组 将转到右侧数组。请帮助我改进我的逻辑,因为我知道这不是正确的方法 要解决
int[]integerArray={3,7,-9,1,98,-5,0}代码>
用户将输入一个值(即0),所需的输出应为
所有小于输入值的值都应位于数组的左侧,并且
大于输入键的值应位于数组的右侧
所需输出:{-9,-5,0,1,3,7,98}
不需要对值进行排序,它可以是:{-5,-9,0,98,1,5,3}
我的做法:
我必须使用整数数组,并将键与数组的值进行比较
若它小于输入,若它大于输入,它将转到左数组
将转到右侧数组。请帮助我改进我的逻辑,因为我知道这不是正确的方法
要解决此程序,请在向数组添加任何值后使用:
int[] integerArray = {3,7,-9,1,98,-5,0};
Arrays.sort(integerArray);
你在玩qSort吗?您的代码(qSort算法的枢轴部分)
可能是这样的:
int[] integerArray = {3, 7, -9, 1, 98, -5, 0};
int pivot = 0; // <- Value to compare with
int left = 0;
for (int i = 0; i < integerArray.length; ++i) {
if (integerArray[i] <= pivot) { // or integerArray[i] < pivot - it's unclear from the question
int h = integerArray[i];
integerArray[i] = integerArray[left];
integerArray[left] = h;
left += 1;
}
}
int[]integerArray={3,7,-9,1,98,-5,0};
int pivot=0;//目前为止请给我们看一些代码并解释它在哪里失败。你的逻辑现在在哪里?你的标题非常糟糕。。