본문 바로가기

algorithm4

[알고리즘] 삽입정렬, 인서션 소트 (Insertion Sort) 삽입정렬, 인서션 소트 (insertion Sort) i번째 인덱스의 값을 0부터 i-1번째의 값들 중 자신의 위치를 찾아 정렬을 완성하는 알고리즘. 처음 key값을 "두번째 값"부터 시작한다. 최선의 경우: O(n) 비교 회수: 이동없이 한번의 비교만 이루어진다. 외부 루프: (n-1)번 최악의 경우: O(n^2) 비교 회수: 외부 루프 안의 각 반복마다 i번의 비교 수행 교환 회수: 외부 루프의 각 단계마다 (i+2)번의 이동 발생 영상으로 보기 - Folk Dance Insert-sort with Romanian folk dance Python Code def insertion_sort(arr): arr_len = range(1, len(arr)) for i in arr_len: arr_sort_l.. 2019. 8. 8.
[알고리즘] 선택정렬, 셀렉션소트 (Selection Sort) 선택정렬, 셀렉션소트 (Selection Sort) 1. 주어진 배열에서 최솟값을 찾아 맨 앞에 위치한 값과 SWAP한다. 2. 다음 수행시에 처음 위치의 값을 제외한 나머지 값들을 1번을 수행한다. 장점: 자료 이동 횟수가 미리 결정된다. 단점: 값이 같은 레코드가 있는 경우 상대적인 위치가 변경될 수 있다. 비교회수: 외부 루프: (n-1)번 내부 루프: n-1, n-2, ..., 2, 1번 교환회수: 외부 루프의 실행 회수와 동일 SWAP을 위한 3번의 이동이 필요 영상으로 보기 - Folk Dance Python Code def selection_sort(arr): arr_len = range(len(arr)) for i in arr_len: min_idx = i arr_sub_len = rang.. 2019. 8. 7.
[알고리즘] 거품정렬, 버블 소트(Bubble sort) 거품정렬, 버블소트 (Bubble Sort) 인접한 두 원소를 비교하여 정렬하는 알고리즘. 두 원소의 순서가 정렬되어 있지 않을 경우 두 원소를 swap한다. 1회전 수행 후 가장 큰 값이 뒤로가므로 2회전 때는 맨 끝에 있는 자료는 정렬에서 제외한다. 비교회수: n-1, n-2, ..., 2, 1 번 = n(n-1)/2 교환회수: 입력 자료가 역순으로 정렬되어 있는 최악의 경우, 한 번 교환하기 위하여 3번의 이동(SWAP 함수의 작업)이 필요하므로 (비교 횟수 * 3) 번 = 3n(n-1)/2 입력 자료가 이미 정렬되어 있는 최상의 경우, 자료의 이동이 발생하지 않는다. T(n) = O(n^2) 영상으로 보기 - Folk Dance Bubble-sort with Hungarian ("Csángó") .. 2019. 8. 6.
[알고리즘] Extra Long Factorials 해커랭크 문제. Extra Long Factorials 링크: https://www.hackerrank.com/challenges/extra-long-factorials/problem Author: vatsalchanana Difficulty: Medium #!/bin/python3 import math import os import random import re import sys # Complete the extraLongFactorials function below. def extraLongFactorials(n): total = 1 while n > 1: total = total * n n -= 1 print(total) if __name__ == '__main__': n = int.. 2019. 7. 24.