根据用户输入拆分数组

时间:2013-07-02 06:19:40

标签: 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}

我的方法:

我需要整数数组,并且我将密钥与数组的值进行比较 如果它小于输入,它将转到左数组,如果它大于输入它 将转到正确的阵列。请帮助我改进逻辑,因为我知道它不是正确的方法 解决这个计划。

2 个答案:

答案 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;
  }
}