본문 바로가기

Algorithmic Wisdom 🧠/Sort2

[알고리즘][정렬] - 쉘 정렬 쉘 정렬이란? 배열을 부분적으로 정렬된 여러 개의 서브 배열로 나누고 각 서브 배열에 대해 삽입 정렬을 수행함으로써 전체 배열을 점진적으로 정렬하여 삽입 정렬을 개선한 정렬 알고리즘 (삽입 정렬에 대한 설명 보러 가기) 작동 원리 1. 배열의 전체 길이에 따라 초기 간격(gap)을 설정한다 (보통 전체 길이의 절반이며, 홀수 권장) 2. 설정된 간격만큼 떨어진 요소들을 담은 부분 리스트를 생성한다 (부분 리스트의 개수는 간격과 같다) 3. 부분 리스트의 요소들을 비교하여 각각 삽입 정렬한다 4. 정렬 후, 간격을 절반으로 축소한다 (축소할 때마다 하나의 부분 리스트에 속한 값들은 증가) 5. 간격이 1 에 도달하면 전체 리스트를 삽입 정렬한다 작동 예시 쉘 정렬 메소드 예시 public void shel.. 2024. 2. 16.
[알고리즘][정렬] - 삽입 정렬 삽입 정렬이란? 데이터들을 기존의 배열과 비교하여 자신의 위치를 찾아 삽입하여 정렬을 완성하는 알고리즘 삽입 정렬 예시 오름차순으로 정렬된 [1, 2, 3, 4, 5, 6, 8, 9] 배열이 존재한다고 가정하고 7 이라는 새로운 데이터가 주어졌을 경우 앞(뒤)에서부터 비교하여 6 과 8 사이에 삽입 뒤에서부터 비교하는 삽입 정렬 예시 int[] preSortedArray = {1, 2, 3, 4, 5, 6, 8, 9}; int preSortedArrayLength = preSortedArray.length; int newData = 7; int placeInArray; // 크기 증가가 안되는 배열의 특성을 고려하여 새로운 배열 생성 int[] newArray = new int[preSortedArray.. 2023. 7. 28.
728x90
반응형