문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
1.삽입정렬 풀이
#수 정렬하기
#시간복잡도 O(n**2)인 버블정렬,삽입정렬 등으로 풀어보자
N = int(input())
numbers = []
for i in range(N):
numbers.append(int(input()))
def insert_sort(x):
for i in range(1,len(x)):
j = i-1
key = x[i]
while x[j] > key and j >= 0:
x[j+1]=x[j]
j = j-1
x[j+1] = key
return x
numbers = insert_sort(numbers)
for i in numbers:
print(i)
2. 버블 정렬 풀이
#수 정렬하기
#시간복잡도 O(n**2)인 버블정렬,삽입정렬 등으로 풀어보자
N = int(input())
numbers = []
for i in range(N):
numbers.append(int(input()))
def bubble_sort(x):
length = len(x)-1
for i in range(length):
for j in range(length-i):
if x[j] > x[j+1]:
x[j], x[j+1] = x[j+1], x[j]
return x
numbers = bubble_sort(numbers)
for i in numbers:
print(i)
'CS > 알고리즘' 카테고리의 다른 글
백준 2108 통계학 파이썬 풀이 (0) | 2022.03.01 |
---|---|
백준 10989번 수 정렬 3 파이썬 풀이(메모리 관리) (0) | 2022.02.28 |
백준 1436번 영화감독 숌 파이썬 풀이 (0) | 2022.02.24 |
백준 1018 체스판 다시 칠하기 파이썬 풀이 (1) | 2022.02.23 |
백준 7568번 덩치 파이썬 풀이 (0) | 2022.02.21 |