2013-07-02 27 views
-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}

我的方法:

我不得不整数数组,并和我比较阵列 值的关键,如果它是比输入小就会去左边的数组,如果它是比输入更高的IT 会去正确的阵列。请帮我改进我的逻辑,因为我知道它不是正确的方法 来解决这个程序。

+2

[你尝试过什么(http://mattgemmell.com/2008/12/08/what-have-you-tried/ ) 至今。请向我们展示一些代码并解释它失败的位置。 –

+0

你现在的逻辑在哪里? –

+0

你的标题非常糟糕.. – Maroun

回答

1

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

int[] integerArray = {3,7,-9,1,98,-5,0}; 
Arrays.sort(integerArray); 
0

你跟快速排序玩?您的代码(快速排序算法的枢纽部分) 可能是这样的:

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