본문 바로가기
728x90

CS/알고리즘3

[알고리즘 정렬] 자바(JAVA)로 알아보는 퀵 정렬(Quick Sort) 퀵 정렬(Quick Sort) 퀵정렬을 하기 위해 가장 먼저 해야 하는 것: 기준점(pivot) 잡기 기준점(pivot) 값을 정할 때에는 아무 값이나 정해도 되지만 중간 값으로 잡는 게 가장 좋다. 피벗 선택 방식: 첫 번째, 중간, 마지막, 랜덤 등등 (선택 방식에 따라 속도가 달라짐) 다양함 하지만 우리는 배열을 검색해보고 나서 중간값이 어딘지를 정할 수 없기 때문에 그냥 물리적으로 중간에 있는 값을 선택(배열의 길이가 n라고 치면 n/2의 값을 기준점으로 잡음) 아무 곳을 기준점으로 잡고 기준점을 기준으로 기준점보다 작거나 같으면 smaller, 기준점보다 크거나 같으면 bigger(기준점을 smaller에 포함시켜도 되고 bigger에 포함시켜도 된다)로 나눈다. 퀵 정렬의 전제는 작은 쪽(sm.. 2022. 3. 26.
[알고리즘 정렬] 자바(JAVA)로 알아보는 버블 정렬(거품 정렬 Bubble Sort) 버블 정렬(Bubble Sort) 앞에서부터 두 개씩 자기 옆에 있는 값과 비교 → 작은 값은 앞으로 큰 값은 뒤로 바꾸면서 정렬하는 방법 첫 번째 루프 3 5 4 2 1 1. 3과 5를 비교: 작은 값(3)은 앞에, 큰 값(5)은 뒤에 있으니까 통과 3 5 4 2 1 2. 5와 4를 비교: 작은 값(4)은 뒤에, 큰 값(5)은 앞에 있으니까 자리를 바꿔줌 바꾼 결과 3 4 5 2 1 3 4 5 2 1 3. 5와 2를 비교: 작은 값(2)은 뒤에, 큰 값(5)은 앞에 있으니까 자리를 바꿔줌 바꾼 결과 3 4 2 5 1 3 4 2 5 1 4. 5와 1을 비교: 작은 값(1)은 뒤에, 큰 값(5)은 앞에 있으니까 자리를 바꿔줌 바꾼 결과 3 4 2 1 5 5는 정렬 완료 두 번째 루프 3 4 2 1 5 1... 2022. 3. 25.
[이코테 2021 강의] 1. 알고리즘 성능평가 (자바 코드 예시) 본 게시글은 나동빈 님의 "이것이 취업을 위한 코딩 테스트다 with 파이썬"의 유투브 강의인 이코테 2021 강의를 듣고 정리한 정리본입니다. (이코테 2021 강의 몰아보기) 1. 코딩 테스트 출제 경향 분석 및 파이썬 문법 부수기 해당 영상의 " 알고리즘 성능 평가" 부분만을 정리한 게시글입니다. 복잡도(Complexity) 복잡도는 알고리즘의 성능을 나타내는 척도 시간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 시간 복잡도가 높다 → 더 많은 수행시간이 소요 시간 복잡도가 낮다 → 해당 알고리즘이 더 빨리 실행 공간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 공간 복잡도가 높다 → 많은 메모리가 필요하다. 공간 복잡도가 낮다 → 더 적은 메모리가 필요.. 2022. 3. 19.