<aside> ❓ 정렬(Sort)란 ‘데이터’를 ‘특정한 기준에 따라 순서대로 정렬’하는 알고리즘이다..

</aside>

→ 이때 **stability(안정성)**이란, 동일한 값을 가진 요소들의 순서가 정렬 전후로 변하지 않는다는 것을 의미한다. 즉, 정렬 알고리즘이 동일한 값의 순서를 보존한다는 것을 의미한다.

Untitled

정렬 알고리즘의 종류

💡각 알고리즘 별 동작 방식은 다음 사이트를 참고

https://adjh54.tistory.com/334


Arrays.sort()를 이용한 정렬 방법

<aside> ❗ 위의 방법으로 String과 같은 다른 데이터 타입의 경우에도 정렬 가능하다.

이는 클래스 내부에 Comparable을 구현하여 오버라이딩된 compareTo() 메서드에 의해서 정렬의 순서가 결정된다.

※ String의 경우에는 compareTo()가 문자열을 사전 식으로 정렬되도록 설정되어 있다.

</aside>

Collections.sort()를 이용한 정렬 방법

Arrays와 유사하게 Collections 클래스를 이용해 정렬을 수행할 수 있다. (List에 주로 사용)

Arrays.sort와 Collections.sort의 **시간 복잡도(Big-O)**는 다음과 같다.

<aside> 💡 간단한 자료구조를 사용하는 경우에는 Arrays 클래스의 메서드를 이용하지만, 만약 시간 제한을 고려해야한다면 Collcetions 클래스의 메서드를 사용하자.

</aside>