Golang程序 使用插入式排序对数组进行降序排序

Golang程序 使用插入式排序对数组进行降序排序

插入排序是一种简单的排序算法,其工作原理类似于你对手中扑克牌的排序方式。数组实际上被分成了已排序和未排序的部分。未排序数组中的元素被挑选出来,放在未排序数组的正确位置上,结果,数组就变成了排序的。在这里,我们将学习在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()函数,初始化一个数组,并将数值存储到其中,在屏幕上打印该数组。

  • 第8步 – 现在,通过传递数组作为参数调用insertionSort()函数,并将结果存储在一个名为result的新数组中。(对于例子2)

  • 第9步 – 在屏幕上打印得到的数组。

例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()部分,另一个使用外部函数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程