冒泡排序是一种简单的排序算法,重复地遍历要排序的数组,比较相邻的元素并交换它们的顺序,如果它们的顺序错误。遍历数组的工作是重复进行的,直到没有再需要交换的元素为止。 以下是用 Go 语言实现的冒泡排序算法的示例代码: ```go package main import ( "fmt" ) // bubbleSort 实现了冒泡排序算法 func bubbleSort(arr []int) { n := len(arr) // 外层循环,用于控制需要比较的轮次 for i := 0; i < n; i++ { // 内层循环,用于进行相邻元素的比较和交换 for j := 0; j < n-i-1; j++ { if arr[j] > arr[j+1] { // 交换 arr[j] 和 arr[j+1] arr[j], arr[j+1] = arr[j+1], arr[j] } } } } func main() { arr := []int{64, 34, 25, 12, 22, 11, 90} fmt.Println("原数组:", arr) bubbleSort(arr) fmt.Println("排序后的数组:", arr) } ``` 代码解析: - `bubbleSort` 函数接收一个整数切片作为参数并对其进行排序。 - 外层循环控制排序的轮次,每次都将最大的元素“冒泡”到最后。 - 内层循环比较相邻的元素,如果前一个元素比后一个元素大,则交换它们的位置。 - 最终,经过多次轮次遍历,数组就会变得有序。 示例输出: 运行上述代码,输出如下: ``` 原数组: [64 34 25 12 22 11 90] 排序后的数组: [11 12 22 25 34 64 90] ``` 冒泡排序的时间复杂度是 O(n^2),在数据量较小或者几乎有序的情况下表现良好,但不适合大规模数据的排序。 [2024-08-17 17:48:19 | AI写代码神器 | 868点数解答]