3011 - 버블 정렬 +

2022. 1. 20. 13:42· PS - CodeUp

1441과 같은 버블 정렬이지만, 불필요한 단계는 스킵할 수 있는 알고리즘이 추가적으로 요구된다.

 

예를 들어 1 5 3 2 4 를 오름차순으로 정렬한다면,

 

1단계 - 1 3 2 4 5

2단계 - 1 2 3 4 5 (이미 정렬 완료)

3단계 - 1 2 3 4 5

4단계 - 1 2 3 4 5

 

불필요한 3 4단계는 반복문을 깨고 나와서 실행을 하지 않아야 함.

 

 

## 3011

위와 같음

총 몇 단계가 필요한지 출력하는 코드

import java.util.Scanner;

public class CodeUp3011 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] arr = new int[n];

		for (int i = 0; i < n; i++) {
			arr[i] = sc.nextInt();
		}
		sc.close();
		int i;
		int tmp;

		for (i = 0; i < n - 1; i++) {
			int cnt = 0;
			for (int j = 0; j < n - i - 1; j++) {
				if (arr[j] > arr[j + 1]) {
					tmp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = tmp;
					cnt++;
				}
			}
			if (cnt == 0)
				break;
		}
		System.out.println(i);

	}
}

- 정해진 포멧이 없어서 편하기도 했지만 이게 가장 적절한 코드인지는 모르겠다.

'PS - CodeUp' 카테고리의 다른 글

1501, 1502 - 2차원 배열 채우기1&2, 1507, 1512 - 4개의 직사각형 넓이, 숫자 등고선  (0) 2022.01.20
1411, 1492 - 빠진 카드, 1차원 누적 합 배열 만들기 (결국 둘 다 새로 짬)  (0) 2022.01.20
1096, 1097, 1098 - 바둑판에 흰 돌 놓기, 바둑알 십자 뒤집기, 설탕과자 뽑기  (0) 2022.01.20
1093, 1094, 1095 - 이상한 출석 번호 부르기 1, 2, 3  (0) 2022.01.20
1441, 1442, 1443 - 버블 정렬, 선택 정렬, 삽입 정렬  (0) 2022.01.20
'PS - CodeUp' 카테고리의 다른 글
  • 1501, 1502 - 2차원 배열 채우기1&2, 1507, 1512 - 4개의 직사각형 넓이, 숫자 등고선
  • 1411, 1492 - 빠진 카드, 1차원 누적 합 배열 만들기 (결국 둘 다 새로 짬)
  • 1096, 1097, 1098 - 바둑판에 흰 돌 놓기, 바둑알 십자 뒤집기, 설탕과자 뽑기
  • 1093, 1094, 1095 - 이상한 출석 번호 부르기 1, 2, 3
승농
승농
나는 실시간으로 강해지고 있는 백엔드 개발자.
승농
개발자국의 승농
승농
전체
오늘
어제
  • 분류 전체보기 (57)
    • 자유 (0)
    • 코딩 (33)
      • Java (15)
      • WEB 개발 (14)
      • Kotlin (1)
      • DB (1)
    • PS - CodeUp (9)
    • PS - BOJ (15)

블로그 메뉴

  • 블로그 소개
  • 방명록

공지사항

인기 글

관리자

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
승농
3011 - 버블 정렬 +
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.