Go 언어 버블 정렬 구현하기

오늘은 Go 언어로 버블 정렬을 구현해보려 합니다.

package main

import (
	"fmt"
)

정렬을 한 배열을 출력하기 위해 fmt 패키지를 가져옵니다.

func bubble(arr []int) []int {

int 배열로 받고 int 배열로 반환하는 bubble 이라는 함수를 만들어줍니다.

	for i := 0; i < len(arr); i++ {
		for j := 0; j < len(arr)-1; j++ {
			if arr[j] > arr[j+1] {
				arr[j], arr[j+1] = arr[j+1], arr[j]
			}
		}
	}
	return arr
}

이중 for문으로 반복하면서 j번째와 j+1번째를 계속 비교하면서 앞의 j번째가 더 크면 서로 교체해주면서 최종적으로는 가장 큰 값을 맨 뒤로가게 합니다.

그리고 이와 같은 방법을 배열의 크기만큼 i번 반복하면 배열이 정렬되게 됩니다.

func main() {
    arr := []int{3, 7, 4, 1, 7, 5, 4, 8}
    fmt.Println(arr)
	fmt.Println(bubble(arr))
}

메임 함수에서 []int 타입을 함수의 인자로 넣어주면 정렬된 배열로 반환됩니다.

Written on November 10, 2018