강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

이호영님의 프로필 이미지
이호영

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

35. Special Sort (버블정렬 응용: 구글 인터뷰)

35번 질문드립니다.

작성

·

347

0

강사님

항상 좋은 강의에 감사드립니다!

 

현재 입력 값에서 양수가 순서대로 되어있어서 

만약에 순서대로 되어있지 않다면 아래와 같은 식으로 하면 될까요?

 

for(i=0; i<n-1; i++){

        for(j=0; j<n-i-1; j++){

            if(arr[j]>0 && arr[j+1]<0){

                tmp = arr[j];

                arr[j] = arr[j+1];

                arr[j+1] = tmp;

            } else if(arr[j]>0 && arr[j+1]>0) {

                if(arr[j] > arr[j+1]){

                    tmp = arr[j];

                    arr[j] = arr[j+1];

                    arr[j+1] = tmp;

                }

            }

        }

    }

퀴즈

선택 정렬(Selection Sort) 알고리즘은 각 단계에서 어떤 작업을 수행하여 배열을 정렬하나요?

인접한 두 요소를 비교하여 필요시 교환합니다.

정렬되지 않은 부분에서 가장 작은(또는 큰) 값을 찾아 정렬된 부분의 올바른 위치로 옮깁니다.

현재 요소를 이미 정렬된 부분 배열의 적절한 위치에 삽입합니다.

배열을 분할하고 각 부분을 재귀적으로 정렬한 후 병합합니다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

양수를 오름차순 정렬하라는게 아니라 입력된 순서를 그대로 유지하면서 음수들은 앞으로 양수들은 뒤로 보내면 됩니다. 

이호영님의 프로필 이미지
이호영

작성한 질문수

질문하기