본문 바로가기

C언어/자료구조

6-1장 정렬

1. 정렬 정의 하기 

 

정렬(sorting)

 - 이름, 학번, 키 등 핵심 항목 (key)의 대소 관계에 따라 데이터 집합을 일정한 순서로 줄지어 늘어서도록 바꾸는 작업

 - 키 값이 작은 데이터를 앞쪽에 놓으면 오름차순(ascending order)

 - 키 값이 큰 데이터를 앞쪽에 놓으면 내림차순(descending order)

 

정렬 알고리즘의 안정성 

 

 - 안정된(stable) 정렬

 -> 같은 값의 키를 가진 요소의 순서가 정렬 전후에도 유지 

 -> 중복된 값을 입력 순서와 동일하게 정렬

 -> 삽입 정렬, 병합 정렬, 버블 정렬

 

 - 불안정(unstable) 정렬

  -> 중복된 값을 입력순서와 동일하지 않게 정렬

  -> 퀵 정렬, 선택 정렬

 

정렬 알고리즘의 핵심 요소 

 

 - 교환, 선택, 삽입

 

내부 정렬과 외부 정렬

 

 - 내부(internal) 정렬 

 -> 정렬할 모든 데이터를 하나의 배열에 저장할 수 있는 경우에 사용

 

 - 외부(external) 정렬 

  -> 정렬할 데이터가 너무 많아서 하나의 배열에 저장할 수 없는 경우에 사용 

'C언어 > 자료구조' 카테고리의 다른 글

6-3장 단순 선택 정렬  (0) 2023.07.28
6-2장 버블 정렬  (0) 2023.07.28
5-4장 8퀸 문제  (0) 2023.07.28
5-3장 하노이의 탑  (0) 2023.07.27
5-2 재귀 알고리즘 분석  (0) 2023.07.27