250x250
Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 딕셔너리
- lv0
- time.sleep
- 데이터 타입
- 정보처리기사
- scraping
- HTML
- 슬라이싱
- 메서드
- 태그
- Python
- 데이터베이스
- 자격증공부
- SQL 개발자
- 파이썬
- SQLD
- CSV
- SQL
- 프로그래머스
- 1과목
- 프로젝트
- 조건문
- 튜플
- 정리
- 파이선
- Crawling
- 크롤링
- 자격증
- django
- 스크랩핑
Archives
- Today
- Total
나의 공부 일기
Python) 정렬 알고리즘 본문
728x90
정렬 알고리즘 중 하나인 버블(Bubble)정렬에 대해 정리해보겠습니다.
버블 정렬이란 서로 인접한 두 원소를 검사 비교하여 정렬하는 알고리즘을 말합니다.
인접한 2개의 레코드를 비교하여 크기가 순서대로 정렬되어있지 않다면 두 값을 서로 교환해주는것을 말합니다.
파이썬에서 이를 구현할때는 조금 다르게 구현되는데,
정렬할 리스트에 관한 반복문 두개를 생성 한 뒤
처음 반복문에서 비교시킬 값을 고정시키고 두번째 반복문에서 첫번째 반복문에서 고정시킨값과 비교하며 정렬방식에 맞게 더 작거나 더 큰 값이면 바꿔주는 이런걸 말합니다.
처음값 9와 나머지값 4 5 1 3 을 비교하여 더 작은 값일경우 서로 변경해주는 코드입니다.
lst = [9,4,5,1,3]
for i in range(len(lst)-1) :
for j in range(i+1,len(lst)):
if lst[i] > lst[j] :
tmp = lst[i]
lst[i] = lst[j]
lst[j] = tmp
이 코드를 가지고 어떻게 변화해가는지 표를 통하여 정리해보겠습니다.
lst[0] 변화
↓
↓
↓
↓
이 순서대로 리스트의 길이만큼 반복하여 변경해주는것이 버블정렬 알고리즘입니다.
이렇게 반복해서 계속 실행하면
lst[1] 변화과정
lst[2] 변화과정
lst[3] 변화과정
최종적으로 lst[1,3,4,9,5] 로 오름차순 정렬이 되어진걸 확인하실 수 있습니다.
여기까지 버블정렬 알고리즘에 대해 하나하나 자세히 정리해보았습니다.
궁금하신점 남겨주시면 답변해드리겠습니다.
728x90
'파이썬 > 파이썬 정리' 카테고리의 다른 글
Python) 객체지향프로그래밍 OOP(Class)란? (0) | 2023.10.18 |
---|---|
Python) FILE I/O(파일 입출력) (0) | 2023.10.17 |
Python) random(난수) 랜덤한값을 가져온다 (0) | 2023.10.16 |
Python) 람다함수(Lambda) (0) | 2023.10.15 |
Python) 재귀함수(Recursive Function) (0) | 2023.10.15 |