Golang程序实现选择排序


2022年3月31日, Learn eTutorial
1334

为了更好地理解这个示例,我们始终建议您学习下面列出的 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:退出

实现 Selection_Sort(array[] int, size int) 的步骤

步骤1:通过遍历数组找到最小元素min的索引。
步骤2:如果找到最小数字,则与前一个元素交换。
步骤3:递增min以指向下一个元素
步骤4:重复直到数组排序完成
步骤5:返回排序后的数组
 


 

Golang 源代码

                                          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]