Ed Inteligência Artificial do Passei Direto
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.