Skip to content

Latest commit

 

History

History
55 lines (38 loc) · 994 Bytes

0410_LinkedList.md

File metadata and controls

55 lines (38 loc) · 994 Bytes

조세프 문제

01배열

  • 죽은 병사 음수
  • 음수 카운트 X
  • 남은 병사수 2명이면 인덱스 값 확인

02리스트

  • 노드 생성, 데이터 저장
  • 저장 후 3만큼 이동

삽입 정렬

연결리스트일때 삽입정렬이 효율적

  • S : 정렬된 앞부분의 원소들
  • U: 정렬되지 않은 나머지 원소들
  • U의 원소를 하나씩 S에 삽입정렬
  • 시간 복잡도 O(n^2)
arr = [69, 10, 30, 2, 16, 8, 31, 22]
N = len(arr)
for i in range(1, N):
    tmp = arr[i]
    print(arr[:i], arr[i:])
    j = i - 1
    while j >= 0 and arr[j] > tmp:
        arr[j+1] = arr[j]
        j -= 1
    arr[j+1] = tmp
print(arr)

병합 정렬

여러개의 정렬된 자료 병합하여 정렬

연결 리스트시 유리

  • 분할 정복 알고리즘 활용
    • 최소 단위 문제까지 나눈 후 차례대로 정렬
    • top-doen
    • 분할 - 정복 - 병합(합병)
  • O(n log n)

우선순위 큐

트리로 구현하자^^ 더 이득