728x90
- 정렬이란?
- 데이터를 순서대로 나열하는 방법을 의미합니다.
- ex) 큰수 -> 작은수, 작은수 -> 큰수
Bubble-Sort (버블)
특징
- Sort를 이해 하기 매우 쉽다.
- 성능이 좋지 않다.
- 바로 옆 인자 와 비교
코드
int size = arr.length; for(int i = 1; i < size; i++) { for(int j = 0; j < size - i; j++) { if(arr[j] > arr [j + 1]) { swap(arr, j, j + 1); // 구현 필요 } } }
시간 복잡도 : O(N^2)
Select-Sort(선택)
특징
- 가장 작은/큰 숫자 Index를 저장하여 한 라운드 종료시 Swap
코드
public static void selectSort(int[] arr){ int size = arr.length; for(int i = 0; i < size - 1; i++) { int index = i; for(int j = i + 1; j < size; j++){ if(arr[index] > arr[j]){ index = j; } } swap(arr, i, index); // 구현 필요 } }
시간 복잡도 : O(N^2)
Insert-Sort(삽입)
특징
- 비교 대상이 비교 조건이 성립 되지 않으면 라운드 종료
코드
public static void InsertSort(int[] arr){ int size = arr.length; for(int i = 1; i < size; i++){ for(int j = i; j > 0; j--){ if(arr[j] < arr[j - 1]){ swap(arr, j, j -1); // 별도 구현 필요 }else{ break; } } } }
시간 복잡도 : O(N^2)
Quick-Sort
Merge-Sort
Shell-Sort
16가지 정렬 알고리즘
길 찾기 알고리즘
[- YouTube
www.youtube.com](https://youtu.be/Ns4)
참고
<생활 코딩> https://opentutorials.org/course/543/6046
<알고리즘을 시각적으로 학습할 수 있도록 돕는 서비스> http://www.comp.nus.edu.sg/~stevenha/visualization/index.html
[VisuAlgo moves to https://visualgo.net/en
www.comp.nus.edu.sg](http://www.comp.nus.edu.sg/~stevenha/visualization/index.html)
728x90
'Data Structure' 카테고리의 다른 글
큐(Stack)/스택(Queue)[1] (0) | 2023.04.15 |
---|---|
Hash Tables (0) | 2023.04.15 |
성능 분석 (0) | 2023.04.15 |
자료 구조란? (0) | 2023.04.15 |