처음부터 Go로 버블 정렬 작성하기

5179 단어 go


게시물Writing Bubble Sort in Go from ScratchQvault에 처음 등장했습니다.

버블 정렬은 요소가 목록의 맨 위로 "버블링"되는 방식을 따서 명명되었습니다. 버블 정렬은 슬라이스를 반복적으로 살펴보고 인접한 요소를 비교하여 순서가 잘못된 경우 교환합니다. 전체 목록이 완전히 정렬될 때까지 slice을 계속 반복합니다.

버블 정렬 알고리즘의 전체 예제




func bubbleSort(input []int) []int {
    swapped := true
    for swapped {
        swapped = false
        for i := 1; i < len(input); i++ {
            if input[i-1] > input[i] {
                input[i], input[i-1] = input[i-1], input[i]
                swapped = true
            }
        }
    }
    return input
}


코드에서 알고리즘 사용




func main() {
    unsorted := []int{10, 6, 2, 1, 5, 8, 3, 4, 7, 9}
    sorted := bubbleSort(unsortedInput)

    // sorted = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
}


버블 정렬을 사용하는 이유는 무엇입니까?



버블 정렬은 작성하기 쉬운 것으로 유명합니다. 가장 느린 정렬 알고리즘 중 하나이지만 빠른 스크립트나 정렬할 데이터의 양이 적을 때 유용할 수 있습니다. 생산 시스템에서 사용할 정렬 알고리즘이 필요한 경우 not reinventing the wheel and using the built-in sort.Sort method을 권장합니다.

버블 정렬 Big-O 복잡성



버블 정렬은 빠르고 작성하기 쉬운 것으로 간주되지만 실제로는 가장 느린 정렬 알고리즘 중 하나입니다. 버블 정렬은 코드에서 중첩for-loop인 목록의 각 요소에 대해 전체 목록을 이동해야 하므로 버블 정렬의 복잡성은 O(n^2)입니다.

읽어 주셔서 감사합니다. 이제 과정을 수강하십시오!

기술 분야의 고임금 직업에 관심이 있으십니까? 실습 코딩 과정을 마친 후 인터뷰를 시작하고 멋지게 통과합니다.

Start coding now

질문?



질문이나 의견이 있으면 트위터에서 나를 팔로우하고 연락하십시오. 기사에서 실수를 한 경우 반드시 let me know 수정하여 수정할 수 있도록 해주세요!

Subscribe 받은 편지함으로 바로 전달되는 더 많은 코딩 기사를 보려면 내 뉴스레터로 보내십시오.

좋은 웹페이지 즐겨찾기