2013-07-02 14 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}.

내 방식 :

내가 배열을 정수하는 데 및 그이 입력보다 큰 경우는 왼쪽 배열로 이동합니다 입력보다 작은 경우 나 배열 의 값을 사용하여 키를 비교하고 그것을 오른쪽 배열로 이동합니다. 제 논리를 향상시키는 데 도움을주세요.이 프로그램을 해결하기 위해 적절한 접근 방법이 없습니다. .

+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

것은 당신이 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; 
    } 
} 
관련 문제