2013-07-02 59 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; 
    } 
}