Data Structure

정렬

Raconer 2023. 4. 15. 16:43
728x90

데이터를 순서대로 나열하는 방법입니다.
예시: 큰 수 → 작은 수 (내림차순), 작은 수 → 큰 수 (오름차순)


🔸 Bubble Sort (버블 정렬)

✅ 특징

  • Sort를 이해하기 매우 쉽다.
  • 성능이 좋지 않다.
  • 바로 옆 인자와 비교

✅ 코드 (Java)

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)

🔗 참고 링크


🔸 Selection Sort (선택 정렬)

✅ 특징

  • 가장 작은/큰 숫자 인덱스를 저장하여 한 라운드 종료 시 Swap

✅ 코드 (Java)

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)

🔗 참고 링크


🔸 Insertion Sort (삽입 정렬)

✅ 특징

  • 비교 대상이 조건에 맞지 않으면 루프 종료 → 효율적

✅ 코드 (Java)

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)

🔗 참고 링크


📌 기타 정렬 알고리즘 링크


📚 참고 자료

728x90

'Data Structure' 카테고리의 다른 글

큐(Stack)/스택(Queue)[1]  (0) 2023.04.15
Hash Tables  (0) 2023.04.15
성능 분석  (0) 2023.04.15
자료구조와 소프트웨어 생명주기  (0) 2023.04.15