STUDY_SEONMIN
2750. 수 정렬하기 본문
N개의 수가 주어졌을 때 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
*시간복잡도가 O($n^2$)인 정렬 알고리즘 이용 : 선택, 거품, 삽입 정렬
1. 선택 정렬
https://ko.wikipedia.org/wiki/%EC%84%A0%ED%83%9D_%EC%A0%95%EB%A0%AC
선택 정렬 - 위키백과, 우리 모두의 백과사전
선택 정렬(選擇整列, selection sort)은 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다. 주어진 리스트 중에 최소값을 찾는다. 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)). 맨
ko.wikipedia.org
N = int(input())
numbers = [int(input()) for _ in range(N)]
for i in range(N-1):
minindex = i
for j in range(i+1,N):
if numbers[j] < numbers[minindex]:
minindex = j
numbers[i], numbers[minindex] = numbers[minindex], numbers[i]
for number in numbers:
print(number)
2. 버블 정렬
https://ko.wikipedia.org/wiki/%EA%B1%B0%ED%92%88_%EC%A0%95%EB%A0%AC
거품 정렬 - 위키백과, 우리 모두의 백과사전
무작위 배열수의 거품 정렬 예 거품 정렬( - 整列, 영어: bubble sort, sinking sort)은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 O ( n 2 ) {\displaystyle O(n^{2})} 로 상당히 느리지만, 코
ko.wikipedia.org
N = int(input())
numbers = [int(input()) for _ in range(N)]
for i in range(N-1):
for j in range(N-i-1):
if numbers[j] > numbers[j+1]:
numbers[j], numbers[j+1] = numbers[j+1], numbers[j]
for number in numbers:
print(number)
3. 삽입 정렬
https://ko.wikipedia.org/wiki/%EC%82%BD%EC%9E%85_%EC%A0%95%EB%A0%AC
삽입 정렬 - 위키백과, 우리 모두의 백과사전
삽입 정렬(揷入整列, insertion sort)은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. k번째
ko.wikipedia.org
N = int(input())
numbers = [int(input()) for _ in range(N)]
for i in range(1,N):
key = numbers[i]
j = i-1
while numbers[j] > key and j >= 0:
numbers[j+1] = numbers[j]
j = j-1
numbers[j+1] = key
for number in numbers:
print(number)
'STUDY > Baekjoon Algorithm' 카테고리의 다른 글
10989. 수 정렬하기 3 (0) | 2021.07.25 |
---|---|
2751. 수 정렬하기 2 (0) | 2021.07.25 |
1436. 영화감독 숌 (0) | 2021.07.22 |
1018. 체스판 다시 칠하기 (0) | 2021.07.21 |
7568. 덩치 (0) | 2021.07.21 |