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 - 声明一个名为n的新变量,并将数组的长度存储在其中。进一步,将数组打印到屏幕上。
-
步骤4 - 使用for循环遍历数组,并将数组的元素向左移动一个位置,并打印所形成的新数组。
-
步骤5 - 在每个步骤中打印新数组,直到整个数组循环移位为止。
示例1
在这个示例中,我们将使用for循环以循环的方式排列数组的元素。我们将使用for循环遍历数组,并在每个步骤中将数组的元素向左移动一个位置。
package main
import "fmt"
func main() {
// initializing an array
arr := make([]int, 0, 5)
arr = append(arr, 1, 2, 3, 4, 5)
n := len(arr)
fmt.Println("The given array is: ", arr)
for i := 0; i < n; i++ {
last := arr[n-1]
for j := n - 1; j > 0; j-- {
arr[j] = arr[j-1]
}
arr[0] = last
fmt.Println("Permuted Array: ", arr)
}
}
输出
The given array is: [1 2 3 4 5]
Permuted Array: [5 1 2 3 4]
Permuted Array: [4 5 1 2 3]
Permuted Array: [3 4 5 1 2]
Permuted Array: [2 3 4 5 1]
Permuted Array: [1 2 3 4 5]
示例2
在这个示例中,我们将使用go编程语言的内部append()函数来循环移位数组的元素,直到我们再次获得原始数组。
package main
import "fmt"
func main() {
// initializing an array
arr := make([]int, 0, 5)
arr = append(arr, 1, 2, 3, 4, 5)
n := len(arr)
fmt.Println("Original Array: ", arr)
for i := 0; i < n; i++ {
arr = append(arr[1:], arr[0])
fmt.Println("Permuted Array: ", arr)
}
}
输出
Original Array: [1 2 3 4 5]
Permuted Array: [2 3 4 5 1]
Permuted Array: [3 4 5 1 2]
Permuted Array: [4 5 1 2 3]
Permuted Array: [5 1 2 3 4]
Permuted Array: [1 2 3 4 5]
结论
我们成功地编译并执行了一个循环排列数组元素的Go语言程序。这里我们使用了两个程序。在第一个程序中,我们使用一个for循环将数组的元素向前移动一个位置,直到我们再次得到原始数组;而在第二个程序中,我们使用内部函数append()来执行逻辑并在每一步之后打印数组。