使用插入排序法对数组进行降序排序的Go语言程序
插入排序是一种简单的排序算法,其工作方式类似于整理手中扑克牌的方式。数组被虚拟地分成已排序和未排序两部分。从未排序数组中选择元素,并将其放置到未排序数组中的正确位置,最终使数组排序。在这里,我们将学习使用Go语言编程中插入排序对数组进行降序排序的不同方法。
语法
func append(slice, element_1, element_2…, element_N) []T
append函数用于向数组切片添加值。它接受多个参数。第一个参数是要添加值的数组,后面跟着要添加的值。然后,该函数返回包含所有值的最终数组切片。
func make ([] type, size, capacity)
Go语言中的make函数用于创建数组/映射,它接受要创建的变量类型、大小和容量作为参数,并返回可以存储在变量中的切片。
算法
步骤1 − 首先,我们需要导入fmt包。
步骤2 − 然后,我们需要启动main()函数。在这个函数内部,使用make()函数初始化一个整数数组,并使用append()函数为其赋值。
步骤3 − 然后,我们需要使用fmt.Println()函数在屏幕上打印数组。然后使用for循环遍历数组并将数组的当前元素存储在一个名为key的临时变量中。初始化一个新变量,并通过递减索引为其赋值。
步骤4 − 现在,使用for循环检查当前元素是否大于前一个元素。
步骤5 − 如果满足条件,则交换这两个值,并在该内循环中递减当前索引。
步骤6 − 重复此过程,直到遍历整个数组,然后在屏幕上打印最终获得的数组。
步骤7 − 现在,启动main()函数,初始化一个数组,并为其存储值。在屏幕上打印数组。(例如2)
步骤8 − 现在,通过将数组作为参数调用insertionSort()函数,并将结果存储在一个名为result的新数组中。(例如2)
步骤9 − 在屏幕上打印获得的数组。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
示例1
在这个例子中,我们将编写一个Go语言程序,使用插入排序法对整数数组进行降序排序。
package main import "fmt" func main() { // initializing an array arr := make([]int, 0, 5) arr = append(arr, 5, 2, 4, 6, 1, 3) fmt.Println("The given array is: ", arr) for i := 1; i < len(arr); i++ { key := arr[i] j := i - 1 for j >= 0 && arr[j] < key { arr[j+1] = arr[j] j = j - 1 } arr[j+1] = key } fmt.Println("Sorted Array in Descending Order: ", arr) }
输出
The given array is: [5 2 4 6 1 3] Sorted Array in Descending Order: [6 5 4 3 2 1]
示例2
在这个例子中,我们将展示如何使用外部用户定义函数使用插入排序法对数组进行降序排序。我们创建的函数接受要排序的数组作为参数,并返回最终排序的数组作为结果,我们可以在屏幕上打印该结果。
package main import "fmt" func insertionSort(arr []int) []int { for i := 1; i < len(arr); i++ { key := arr[i] j := i - 1 for j >= 0 && arr[j] < key { arr[j+1] = arr[j] j = j - 1 } arr[j+1] = key } return arr } func main() { // initializing an array arr := make([]int, 0, 5) arr = append(arr, 5, 2, 4, 6, 1, 3) fmt.Println("The given array is: ", arr) res := insertionSort(arr) fmt.Println("Sorted Array in Descending Order:", res) }
输出
The given array is: [5 2 4 6 1 3] Sorted Array in Descending Order: [6 5 4 3 2 1]
结论
我们已经成功编译并执行了一个Go语言程序,使用插入排序法对数组进行降序排序,并附带示例。我们在这里使用了两个例子,一个使用程序的main()部分,另一个使用外部函数。