일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 서브넷마스크
- ICQA
- 네트워크 자격증
- FTP
- 파이썬
- 코딩테스트
- Protocol
- 기본 정렬
- 네트워크 관리사 2급
- 자료구조
- Windows Server
- 네트워크 관리사
- Machine learning
- dns
- Django
- network
- 프로토콜
- 밑바닥부터 시작하는 딥러닝
- 딥러닝
- 네트워크
- IPV4
- 머신러닝
- Python
- deep learning
- 알고리즘
- 실기
- 자격증
- Dynamic Programming
- Algorithm
- 패스트캠퍼스
- Today
- Total
목록기본 정렬 (3)
쳉지로그
선택 정렬: 다음과 같은 순서를 반복하며 정렬하는 알고리즘 주어진 데이터들 중, 최솟값을 찾음 해당 최솟값을 데이터 맨 앞에 위치한 값과 교체 맨 앞의 위치를 뺀 나머지 데이터를 동일한 방법으로 반복 """ 선택 정렬 구현 코드 """ def selection_sort(data): for stand in range(len(data) - 1): lowest = stand for i in range(stand+1, len(data)): if data[lowest] > data[i]: lowest = i data[lowest], data[stand] = data[stand], data[lowest] return data - 반복문이 두 개 이므로 시간 복잡도 : O(n^2)
삽입 정렬: 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘 두 번째 인덱스부터 시작함 """ 삽입 정렬 구현 코드 """ def insertion_sort(data): for i in range(len(data) - 1): for j in range(i+1, 0, -1): if data[j] < data[j-1]: data[j], data[j-1] = data[j-1], data[j] else: break return data - 반복문이 두 개 이므로 시간 복잡도 : O(n^2)
버블 정렬: 인접한 두 데이터를 비교하여, 앞에 있는 데이터가 뒤에 있는 데이터보다 크면 자리를 바꾸는 정렬 알고리즘 """ 버블 정렬 구현 코드 """ # swap: 교환이 되었는지 확인하는 변수 def bubble_sort(data): for i in range(len(data)-1): swap = 0 for j in range(len(data) - index - 1): if data[j] > data[j+1]: data[j], data[j+1] = data[j+1], data[j] swap = 1 if swap == 0: break return data - 반복문이 두 개 이므로 시간 복잡도 : O(n^2)