7 .15

바르고·2023년 7월 15일
0
post-thumbnail

백준 단계별 풀이 
10. 기하: 직사각형과 삼각형
11. 시간복잡도
12. 브루트포스
13. 정렬

# int 범위.
4byte = 32bit
2^32 만큼 표현가능.
-2,147,483,648 ~ 2,147,483,64721(자바 unsigned int 없음)
속 편히 long으로 선언하자.

# long 범위
8byte = 64bit
2^64 만큼 표현 가능
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,8079해


# big(O) 표기법
https://ko.wikipedia.org/wiki/점근_표기법


# nextLine() 에러
nextInt() 후 개행문자(enter)가 버퍼에 남아있음.
그 다음 어떤 변수 값을 nextLine()으로 받아온다면.
그 전에 그냥 nextLine()을 하나 넣어서 비워준다.


# 버블 정렬, Bubble Sort
서로 인접한 두 원소를 검사하여 정렬하는 알고리즘
인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환한다

for(int i = 0; i < n - 1; i++){
	for(int j = 0; j < n - i;; j++{
    	if(arr[j] > arr[j+1]){
        	swap(arr, j, j+1);
        }
    }
}

장점
 - 추가적 메모리 소비가 작다. (제자리 정렬)
 - 구현이 매우 쉽다.
 - 안정정렬이 가능하다.
단점
 - 다른 정렬 알고리즘에 비해 교환 과정이 많아 많은 시간을 소비한다.
 
시간복잡도 O(n^2).
그러나 각 라운드에서 교환이 일어나지 않는다면
정렬된 배열이라는 뜻이므로 탈출 시키면 O(n).


# 선택 정렬, Selection Sort
현재 위치에 들어갈 데이터를 찾아 선택하는 알고리즘.
비교정렬. 제자리 정렬. 불안정 정렬.

for(int i=0;i<n-1;i++){
	int min_index = i;
    for(int j = i + 1; j < size; j++){
    	if(a[j] < a[min_index]){
        	min_index = j;
    }
    
    swap(a, min_index, i);
}

장점
 - 추가적인 메모리 소비가 적다.

단점
 - 시간복잡도가 O(n^2)이다.
 - 안정 정렬이 아니다. (같은 수가 있을 때 명확하지 않다.)











profile
바르고의 다락방

0개의 댓글