-1

有一个整数数组,即int[] integerArray = {3,7,-9,1,98,-5,0};

用户将输入一个值(即 0),所需的输出应该是所有小于输入值的值应该放在数组的左边,所有大于输入键的值应该放在数组的右边.

期望的输出:{-9,-5,0,1,3,7,98}

不需要对值进行排序,它可以是 : {-5,-9,0,98,1,5,3}

我的做法:

我必须使用整数数组,并且我将键与数组的值进行比较,如果它小于输入,它将转到左侧数组,如果大于输入,它将转到右侧数组。请帮助我改进我的逻辑,因为我知道这不是解决这个程序的正确方法。

4

2 回答 2

1

只需 在向数组添加任何值后使用Arrays#sort() :

int[] integerArray = {3,7,-9,1,98,-5,0};
Arrays.sort(integerArray);
于 2013-07-02T06:27:20.877 回答
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;
  }
}
于 2013-07-02T06:34:19.833 回答