有一个整数数组,即int[] integerArray = {3,7,-9,1,98,-5,0};
用户将输入一个值(即0),所需的输出应为 所有小于输入值的值都应该在数组的左边和所有值 大于输入键的值应该在数组的右侧。
所需的输出:{-9,-5,0,1,3,7,98}
不需要对值进行排序,它可以是:{-5,-9,0,98,1,5,3}
。
我的方法:
我需要整数数组,并且我将密钥与数组的值进行比较 如果它小于输入,它将转到左数组,如果它大于输入它 将转到正确的阵列。请帮助我改进逻辑,因为我知道它不是正确的方法 解决这个计划。
答案 0 :(得分:1)
在向数组中添加任何值后,只需使用Arrays#sort():
int[] integerArray = {3,7,-9,1,98,-5,0};
Arrays.sort(integerArray);
答案 1 :(得分:0)
你在玩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;
}
}