为了更好地理解这个示例,我们始终建议您学习下面列出的 Golang 编程 的基础主题
在这个Go程序中,我们需要使用选择排序对数组中的一组元素进行排序。选择排序是一种非常常见且简单的排序算法。它基于就地比较算法的原理工作。
在这种技术中,它通过重复查找最小元素并与最左侧元素交换来对元素进行排序,该元素成为已排序数组的一部分。之后,数组被分成两部分,已排序部分和未排序部分。我们可以在左端看到已排序部分,在右端看到未排序部分,未排序部分可以使用该算法再次排序。这个排序过程继续将未排序数组边界向右移动一个元素。选择排序的平均和最坏情况复杂度为 Ο(n2),其中 n 是元素的数量。因此它不适用于大型数据集。
在这里,我们将解释如何在Go程序中执行选择排序。我们可以使用内置函数fmt.println()来打印任何内容,并使用fmt.scanln()来读取值。这个函数定义在fmt包下,它有助于写入标准输出。为了使用这些函数,我们需要导入“fmt”包。
这里变量A保存数组元素。另一个变量n用作数组的大小。使用for循环读取数组元素,并通过调用函数Selection_Sort(array, num))执行选择排序。此函数将尝试通过遍历数组来查找最小元素的索引。如果找到最小数字,则将其与前一个元素交换。重复此过程直到列表排序完成。最后,排序后的数组返回到主函数,主函数通过for循环显示排序结果数组。
下面是在Go程序中实现选择排序的步骤。
步骤1:导入包'fmt'。
步骤 2:打开 main() 函数开始程序,GO 程序的执行从 main() 开始。
步骤 3:声明变量 n。
步骤 4:读取数组大小 n
步骤 5:定义数组 A[]
步骤6:使用'for循环'读取A[]数组元素。
步骤7:通过调用函数Selection_Sort(array, num))执行选择排序
步骤8:使用for循环显示排序后的数组。
步骤 9:退出
步骤1:通过遍历数组找到最小元素min的索引。
步骤2:如果找到最小数字,则与前一个元素交换。
步骤3:递增min以指向下一个元素
步骤4:重复直到数组排序完成
步骤5:返回排序后的数组
package main
import "fmt"
func Selection_Sort(A[] int, n int) []int {
var min int
var temp int
for i := 0; i < n- 1; i++ {
min= i
// Find index of minimum element
for j := i + 1; j < n; j++ {
if A[j] < A[min] {
min= j
}
}
temp = A[i]
A[i] = A[min]
A[min] = temp
}
return A
}
func main() {
fmt.Println("Enter the size of the array:")
var n int
fmt.Scan(&n)
A := make([]int, n, 100)
fmt.Println("Enter elements of the array : ")
for i := 0; i < n; i++ {
fmt.Scan(&A[i])
}
fmt.Println("Sorted array:")
fmt.Println(Selection_Sort(A, n))
}
Enter the size of the array: 5 Enter elements of the array : 69 32 52 74 12 Sorted array: [12 32 52 69 74]