상세 컨텐츠

본문 제목

정렬 문제

Algorithm/algorithm feedback

by 개복신 개발자 2021. 10. 28. 11:06

본문

728x90
반응형

- 선택 정렬

선택하여 정렬

반복문을 이용해서 작은 수를 찾고 그것을 순차적으로 앞에 두는 알고리즘

...등의 과정을 거침

void selectionSort(int arr[], int size) {
    int minIndex;
    int i, j;
    for (i = 0; i < size - 1; i++) {
        minIndex = i;
        for (j = i + 1; j < size; j++) 
            if (arr[j] < arr[minIndex])
                minIndex = j;
         
        swap(&arr[i], &arr[minIndex]);
    }
}

버블 정렬

버블 정렬은 현재 배열 요소와 그 다음 배열 요소를 비교한다음 조건에 걸리면 교환하는 식의 정렬

...등의 과정

코드 생략(너무 기본)

 


삽입 정렬

for while문을 사용

for i in range(1, len(num_list)):
    while i>0 and num_list[i] < num_list[i-1]:
        num_list[i], num_list[i-1] =  num_list[i-1], num_list[i]
        i-=1

while문은 조건을 충족할 때까지 반복된다.

따라서 num_list안의 하나의 값을 정해서 이것이 좌측의 숫자보다 커질 때까지 이동시킨다.


https://www.acmicpc.net/problem/2752

 

2752번: 세수정렬

숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다.

www.acmicpc.net

정렬 문제

풀이 1

num_list = list(map(int, input().split()))
for i in range(len(num_list)):
    for j in range(i+1, len(num_list)):
        if num_list[i] > num_list[j]:
           num_list[i], num_list[j] = num_list[j], num_list[i]
for i in num_list:
    print(i, end=' ')

풀이2

num_list = list(map(int, input().split()))
result = []
for i in range(3):
    result.append(min(num_list))
    num_list.remove(min(num_list))
for i in result:
    print(i, end = ' ')
반응형

'Algorithm > algorithm feedback' 카테고리의 다른 글

백준 2493 탑 python  (0) 2021.09.06
백준 9935 문자열폭발 python  (0) 2021.09.02
Boj 1991 트리 순회 python  (0) 2021.07.29
Boj 15828 Router python  (0) 2021.07.23
Boj 큐2 python  (0) 2021.07.23

관련글 더보기

댓글 영역