[TIL]230331 - 알고리즘 4주차: Decrease and Conquer(2)

Jimin·2023년 4월 3일
0
  • DFS & BFS
  • DFS, BFS 복잡도
    • Θ(V^2) by adjacency table
    • Θ(|V| + |E|) by adjacency list

Topologicl Sort (위상정렬)

  1. DFS popping-off order

더이상 나갈 곳이 없으면 돌아나옴, outEdge가 없으면
제일 끝: inputEdge만 있는 정점


  1. Direct implementation of decrease-and-conquer
  • ex)
  • 그래프에 백 에지가 있는 경우에만 그래프에 주기가 있음
  • 백 에지는 DFS에 의해 생성된 트리에서 노드에서 자신(셀프 루프) 또는 그의 조상 중 하나에 있는 에지를 의미함
  • 백 에지는 DFS 스택에 있는 정점을 방문할 때 감지될 수 있음

Permutations of Size n

  • 크기 n의 순열 생성
  • 원소 a1, a2, ..., an-1의 크기 n-1의 모든 순열을 구하라
  • 그런 다음 각각의 가능한 위치에 a를 삽입합니다
  • 𝑛 (𝑛 − 1)!
  1. n개 요소의 순열을 다음과 같이 구성한다:
  • 크기 n-1의 각 순열에 a를 추가합니다. = n!
  • 1에서 n-1까지의 크기 n-1 포크의 각 순열에 대해
  • ak 앞에 an를 삽입

  1. 4개의 원소 {a, b, c, d}를 가진 순열: 오름차순
    (1) {b,c,d}의 모든 순열에 'a' 시작 추가
    (2) {a,c,d}의 모든 순열에 시작 'b' 추가
    (3) {a,b,d}의 모든 순열에 시작 'c' 추가
    (4) {a,b,c}의 모든 순열에 'd' 시작 추가!


Permutations: Johnson-Trotter Algorithm

화살표 방향에 있는 수에서 나보다 작은 값들 중에 가장 큰 값

  • Θ (n!): "문제의 결함" 때문
  • 순열 생성에 가장 효율적인 것 중 하나

Subsets and Grey Codes

Frank Gray

  • 길이 n의 모든 이진 시퀀스를 생성하기 위한 최소 변경 알고리즘
  • Binary reflected Gray code

Decrease by a Constant Factor

The Facke Coin Problem

출처: https://hyanghope.tistory.com/61

-> 3개로 나누면 더 빠르게 찾을 수 있음

Russian Peasant Multiplications

출처: https://velog.io/@jkae9711

짝수/홀수
val % 2: 산술 연산
val & 1: 논리 연산(마스킹)

0개의 댓글

관련 채용 정보