정렬이란??

2025. 7. 16. 17:39·Develop

📌 정렬?

데이터를 오름 또는 내림차순으로 재배열하여 데이터들을
효율적으로 탐색하고 처리할 수 있게 만드는 알고리즘

장점

  • 검색 효율성 향상: 정렬된 데이터에서는 이진 탐색 등을 사용할 수 있음
  • 데이터 분석: 최대값, 최소값, 중간값 등을 쉽게 찾을 수 있음
  • 사용자 경험: 사용자가 원하는 순서로 데이터를 보여줄 수 있음기본 정렬들 (O(n²))
  • 📌 정렬의 종류
  • 버블 정렬: 인접한 원소를 비교하여 교환
  • 선택 정렬: 최소값을 찾아 앞으로 이동
  • 삽입 정렬: 정렬된 부분에 새 원소를 삽입

효율적인 정렬들 (O(n log n))

  • 병합 정렬: 분할 정복 방식, 안정 정렬
  • 퀵 정렬: 피벗 기준으로 분할, 평균적으로 가장 빠름
  • 힙 정렬: 힙 자료구조 이용, 최악의 경우에도 O(n log n)

복잡도 비교

정렬 방법 최선 평균 최악 공간복잡도 안정성
버블 정렬 O(n) O(n²) O(n²) O(1) 안정
선택 정렬 O(n²) O(n²) O(n²) O(1) 불안정
삽입 정렬 O(n) O(n²) O(n²) O(1) 안정
병합 정렬 O(n log n) O(n log n) O(n log n) O(n) 안정
퀵 정렬 O(n log n) O(n log n) O(n²) O(log n) 불안정
힙 정렬 O(n log n) O(n log n) O(n log n) O(1) 불안정

📌 문자열을 정렬할 경우

숫자정렬

  • 수학적 크기를 직접 비교
  • 기본 비교연산자로 간단하게 처리
  • 정수 실수 모두 동일한 원리

문자 정렬

  • 사전식 순서로 비교
  • 문자의 ASCII값이나 유니코드 값을 기준으로 비교
문자 우선순위

공백(32) < ! < " < # < $ < % < & < ' < ( < ) < * < + < , < - < . < / < 0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < : < ; < < < = < > < ? < @ < A < B < C < ... < Z < [ < \ < ] < ^ < _ < \` < a < b < c < ... < z < { < | < } < ~
  1. 숫자
  2. 대문자
  3. 소문자
  4. 한글 가나다순

'Develop' 카테고리의 다른 글

싱글링크드리스트  (1) 2025.07.19
정렬의 종류  (0) 2025.07.16
문자열이란 ..  (0) 2025.07.14
배열의 의미, 동작방식, 최적화 등등  (0) 2025.07.13
CS:APP 1장 컴퓨터 시스템으로의 여행  (0) 2025.07.12
'Develop' 카테고리의 다른 글
  • 싱글링크드리스트
  • 정렬의 종류
  • 문자열이란 ..
  • 배열의 의미, 동작방식, 최적화 등등
sj-leeee
sj-leeee
배운것과 느낀것을 적는 공간입니다.
  • sj-leeee
    sj-leeee 님의 블로그
    sj-leeee
  • 전체
    오늘
    어제
    • 분류 전체보기 (23)
      • LIFE (5)
      • Develop (17)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

    • 깃허브
    • 이전블로그
  • 공지사항

  • 인기 글

  • 태그

    컴파일
    MQ
    rbtree
    Kafka
    크래프톤정글
    8주차
    Jungle
    krafton
    malloc
    AWS
    Algorithm
    heap
    크래프톤
    정글
    Pintos
    운영체제
    git
    LinkedList
    node.js
    싱글스레드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
sj-leeee
정렬이란??
상단으로

티스토리툴바