본문 바로가기 메뉴 바로가기

lsh424

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

lsh424

검색하기 폼
  • 분류 전체보기 (98)
    • Swift&iOS (32)
      • Swift (5)
      • iOS (26)
    • python (6)
    • 머신러닝 (16)
    • Git 정리 (12)
    • 자료구조 (6)
    • 알고리즘 (17)
      • 정리 (4)
      • 문제풀이 (6)
    • 네트워크 (1)
    • 컴퓨터 그래픽스 (0)
    • about ME (0)
    • 책 (4)
    • 공부 (4)
  • 방명록

sorting (1)
시간복잡도 O(NlogN)정렬 알고리즘 알아보기 with Python

이전에 시간 복잡도 O(N^2)인 정렬 알고리즘들에 대해 포스팅했었는데요. 오늘은 시간 복잡도가 O(NlogN)인 정렬 알고리즘에 대해 알아보려 합니다! 시간복잡도가 O(NlogN)인 대표적인 정렬에는 퀵 정렬, 합병 정렬, 힙 정렬이 있습니다. 1. 퀵 정렬 분할 정복(divide and conquer)기법을 사용한 정렬로, 평균적으로 아주 빠른 성능을 갖는 알고리즘입니다. 정렬 방법 1. 주어진 리스트에서 하나의 원소를 고른다. (피벗) 2. 피벗을 기준으로 두 개의 파티션으로 분할한다. 파티션 1: 피벗보다 작은 원소, 파티션 2: 피벗보다 큰 원소 3. 분할된 파티션에 대해서도 리스트의 크기가 0 혹은 1이 될 때까지 1,2 과정을 반복한다. 소스코드(파이썬) def quick_sort(a: li..

알고리즘 2020. 11. 28. 21:49
이전 1 다음
이전 다음
링크
최근에 올라온 글
최근에 달린 댓글

Blog is powered by Tistory / Designed by Tistory

티스토리툴바