Golang回顾

2024-02-05 10:13:38 浏览数 (1)

很久没有写Golang了,年前工作量小,写了个小例子。算是一个简单的回顾。

以下是使用Golang实现的快速排序的简单实例:

代码语言:go复制
package main

import "fmt"

func quicksort(arr []int) []int {
    if len(arr) <= 1 {
        return arr
    }
    pivot := arr[0]
    var left []int
    var right []int
    for _, x := range arr[1:] {
        if x < pivot {
            left = append(left, x)
        } else {
            right = append(right, x)
        }
    }
    return append(append(quicksort(left), pivot), quicksort(right)...)
}

func main() {
    lst := []int{4, 5, 1, 8, 3, 2, 9, 6, 7}
    sortedList := quicksort(lst)
    fmt.Println(sortedList)
}

在这个示例中,我们首先定义了一个名为quicksort()的函数,该函数接受一个整数型切片arr作为输入,并返回一个已排序的整数型切片。然后我们在main函数中创建了一个整数型切片lst,用于存放要排序的元素。

函数quicksort()的逻辑与之前的Python版本实现是一样的。我们首先检查输入切片的长度是否小于等于1,如果是,则直接返回该切片。否则,我们选择切片的第一个元素作为基准元素,然后将切片分成两个部分,一部分小于基准元素,另一部分大于等于基准元素。然后分别对这两部分递归调用quicksort()函数,并将它们连接起来,形成已排序的切片。

在本示例中,我们使用了Go语言的一些特性,例如可变长切片(slice)、for ... range语法以及append函数。这些语言特性使得我们的代码更加简洁和易读。运行该示例代码,我们得到的输出结果是[1 2 3 4 5 6 7 8 9],这是已经排序好的整数型切片。

【小结】

温故而知新,学过的东西如果长时间不接触一定会感到陌生,有空得拿出来回顾一把。

go

0 人点赞