Logo Passei Direto
Buscar

Como fazer um merge sort no golang?

User badge image

Enviado por Ton Cabral do Nascimento ano passado

Respostas

User badge image

Ed Inteligência Artificial do Passei Direto Verified user icon

ano passado

O Merge Sort é um algoritmo de ordenação eficiente que pode ser implementado em diversas linguagens de programação, incluindo o Go. Aqui está um exemplo de como implementar o Merge Sort em Go: ``` package main import "fmt" func mergeSort(arr []int) []int { if len(arr) <= 1 { return arr } mid := len(arr) / 2 left := mergeSort(arr[:mid]) right := mergeSort(arr[mid:]) return merge(left, right) } func merge(left, right []int) []int { result := make([]int, 0) for len(left) > 0 || len(right) > 0 { if len(left) == 0 { return append(result, right...) } if len(right) == 0 { return append(result, left...) } if left[0] <= right[0] { result = append(result, left[0]) left = left[1:] } else { result = append(result, right[0]) right = right[1:] } } return result } func main() { arr := []int{5, 2, 4, 6, 1, 3} fmt.Println("Unsorted array:", arr) arr = mergeSort(arr) fmt.Println("Sorted array:", arr) } ``` Neste exemplo, a função `mergeSort` é a função principal que chama a função `merge` para combinar as duas metades do array. A função `merge` é responsável por combinar as duas metades do array em um único array ordenado.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!