Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Gradle - Groovy
- 어노테이션
- 아규먼트 리졸버
- 연관관계
- create 모드
- springboot mysql
- sendError()
- jpa
- 파이썬
- 알고리즘
- 데이터베이스
- 테이블항목
- intellij 속도 향상
- restful api 명세서
- logout http 메소드
- 할일관리
- Intellij terminal jar
- restful api 작성 방법
- Gradle - Kotlin
- SpringBoot개인프로젝트
- restful 카멜케이스
- initializr
- 터미널 실행
- restful login 메소드
- 쿼리에러
- 테이블구성
- jpa 연관관계
- springboot
- ERD 수정
- auto ddl
Archives
- Today
- Total
리나 Dev토리
WIL 항해W4 자료구조/알고리즘 3주차 본문
자료구조/알고리즘 3주차
항해를 시작한지 벌써 4주가 지난다.
이번주에는 힙, 버블소트, 선택정렬, 삽입정렬 등을 배웠다.
지난 주말에 결혼식가느라 빠지고 주말동안 완전 놀았더니,
이번주 진도 따라잡기가 힘들었다.
🔢 힙
힙은 데이터에서 최대값과 최소값을 빠르게 찾기 위해 만들어진 완전 이진 트리이다.
최대값 힙이면
루트에 최대값이 있고, 모든 부모는 자식 노드의 값보다 항상 크다.
그러나 좌, 우 자식노드의 위치가 작은순서나, 큰 순서로 있는 것은 아닌다.
🔢 버블 소트
버블소트는 1번째 요소와 2번째 요소를, 2번째 요소와 3번째 요소를 ... 2개씩 오른쪽으로 이동하며 비교하면서, 자리를 교환하는 방식이다.

오름차순의 경우에
작은 숫자, 큰 숫자 순서이면 그대로 놔두고,
큰 숫자, 작은 숫자 순서이면 둘의 자리를 바꿔준다.
🔢 선택 정렬
선택 정렬은 요소를 쭉 보면서 가장 작은 요소를 맨 앞으로 옮기고,
또 나머지 요소 중에 가장 작은 요소를 찾아서 2번째 자리에 오게 한다.

선택 정렬을 직접 구현해보았는데,
처음에 구현한 코드는 최종 결과는 잘 나오길래 구현이 잘 되었나 했는데,
중간마다 print를 해보니 최소값을 찾으면서, 작은 애를 발견 할때마다 swap 해주었었다.
그래서 그 부분을 수정하여 코드를 완성하였다.
def select(lst):
for i in range(len(lst)-1):
minTemp = i # 최소값을 찾기 위해 한번 도는 중에 최소값 index 임시저장
for j in range(1, len(lst)-i):
if lst[i] > lst[i+j] and lst[minTemp] > lst[i+j]:
minTemp = i+j
lst[i], lst[minTemp] = lst[minTemp], lst[i]
return lst
'자료구조&알고리즘' 카테고리의 다른 글
[프로그래머스] lv2 - 124 나라의 숫자 - 파이썬 (0) | 2022.07.31 |
---|---|
WIL 항해W5 자료구조/알고리즘 4주차 (0) | 2022.04.10 |
백준 10814번 : 나이순 정렬(파이썬) (2) | 2022.03.30 |
백준 10773번 : 제로 (파이썬) (0) | 2022.03.30 |
TIL 항해W4 알고리즘 - 버블정렬, 선택정렬, 삽입정렬 (0) | 2022.03.29 |
Comments