선택 정렬 알고리즘

선택 정렬 알고리즘은 간단한 정렬 알고리즘입니다. 선택 정렬 알고리즘은 목록을 왼쪽 끝에 정렬된 부분과 오른쪽 끝에 정렬되지 않은 부분의 두 부분으로 나누는 내부 비교 기반 알고리즘입니다. 처음에는 정렬된 부분이 비어 있고 정렬되지 않은 부분이 전체 목록입니다.

알고리즘은 주어진 배열에서 두 개의 하위 배열을 유지합니다.
  • 이미 정렬된 하위 배열입니다.
  • 나머지 하위 배열은 정렬되지 않았습니다.

  • 선택 정렬 알고리즘 흐름도



    어떻게 작동합니까?


  • 최소값(min_index)을 위치 0으로 설정합니다.
  • 배열을 탐색하여 배열의 최소 요소를 찾습니다.
  • (min_index)보다 작은 요소가 발견되면 두 값을 모두 바꿉니다.
  • 증가(min_index)하여 다음 요소를 가리킵니다.
  • 배열이 정렬될 때까지 반복합니다.

  • Golang에서 알고리즘 구현

    package main
    
    import (
        "fmt"
    )
    
    func selectionSort(arr []int) {
        var i, j, min_index int
        for i = 0; i < len(arr)-1; i++ {
            min_index = i
            for j = i + 1; j < len(arr); j++ {
                if arr[j] < arr[min_index] {
                    min_index = j
                }
            }
    
            // if min_index is not equals to i then swap the indexes
            if min_index != i {
                arr[i], arr[min_index] = arr[min_index], arr[i]
            }
        }
    }
    
    func main() {
        arr := []int{12, 23, 34, 43, 4, 34, 24, 3, 53, 25454, 64}
        fmt.Println("before selection sort", arr)
        selectionSort(arr)
        fmt.Println("after selection sort", arr)
    }
    


    이 기사가 도움이 되셨다면 제 블로그도 확인하실 수 있습니다.

    Programming Geeks Club

    누구든지 도움이 필요하면 주저하지 말고 의견을 남겨주세요.

    읽어 주셔서 감사합니다

    좋은 웹페이지 즐겨찾기