Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Drive-By-Download
- col -1 from CursorWindow
- kotlin
- python
- Make sure the Cursor is initialized correctly before accessing data for it.
- java.lang.IllegalStateException
- 애너그램 그룹
- Docker
- 코틀린
- 6566
- 클라우드가 뭐야
- 페니빙
- 클라우드란?
- tlqkf
- UNIQUE constraint failed
- 블록체인
- cmd1
- 10814
- 쏘큩
- SQLiteConstraintException
- 포너블
- cmd2
- 액션바 필요없숴
- pwable.kr
- Couldn't read row 0
- 백준
- pwnable
- 나이순 정렬
- pwnable.kr
- 파이썬
Archives
- Today
- Total
푸르미르
[python]삽입정렬 본문
삽입정렬은 특별한 경우, 즉 정렬되어있는 리스트가 입력값으로 전달되는 경우 O(n)이고, 일반적으로는 선택정렬과 같이 O(n^2)이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
def ins_sort(a): #오름차순
n=len(a)
for i in range(1, n): #idx:1~n-1(끝)
key=a[i]
j=i-1
while j>=0 and a[j]>key:
a[j+1]=a[j]
j-=1
print(a, key)
a[j+1]=key
d=[2, 4, 5, 1, 3]
ins_sort(d)
print(d)
|
cs |
이해를 돕기위해 9번째줄에 print(a, key)로 출력을 했다.
그 결과값은 아래와 같다.
key가 1일때와 3일때만 while문을 실행하는 것을 알 수 있다.
print(a, key) 이것을 11번째 줄에 집어넣을 경우, 결과값은 아래와 같다.
key가 4와 5일 경우 리스트의 형태는 변하지 않는다. 하지만 key가 1, 3일 경우에는 상황이 달라진다.
'PYTHON, ALGORITHM' 카테고리의 다른 글
[python]선택정렬 (2) | 2021.02.18 |
---|---|
파이썬으로 Linked List 만들기 (3) | 2021.02.03 |
입력 속도를 높이는 방법 (0) | 2021.02.02 |
collections 모듈의 Counter 클래스 (2) | 2021.01.03 |