首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Golang 程序示例:数组排序

通过示例学习如何在 golang 中对数组进行排序

Go 语言提供了一个名为sort的内置包,你可以使用它来对数组和切片进行排序。下面是一个简单的示例,演示了如何按升序对整数数组进行排序:

package main

import (

"fmt"

"sort"

)

func main() {

// Sample unsorted integer array

numbers := []int{5, 2, 9, 1, 5, 6}

// Sorting the array in ascending order

sort.Ints(numbers)

// Display the sorted array

fmt.Println("Sorted array:", numbers)

}

在这个例子中,我们使用sort.Ints()函数,对numbers数组进行排序。这个函数会修改原始数组,因此要注意,在调用sort.Ints()后numbers数组中元素的顺序将会改变。

如果你想要对一个不同数据类型的数组进行排序,或者想要按降序进行排序,你可以使用sort.Sort()函数并搭配一个自定义的sort.Interface。下面是一个按降序对字符串数组进行排序的例子:

package main

import (

"fmt"

"sort"

)

type ByLength []string

func (s ByLength) Len() int           { return len(s) }

func (s ByLength) Less(i, j int) bool { return len(s[i]) > len(s[j]) }

func (s ByLength) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }

func main() {

// Sample unsorted string array

names := []string{"Alice", "Bob", "Charlie", "Eve", "David"}

// Sorting the string array in descending order by length

sort.Sort(ByLength(names))

// Display the sorted array

fmt.Println("Sorted array:", names)

}

在这个例子中,我们定义了一个自定义类型ByLength,它实现了sort.Interface接口及所需的方法(Len()、Less()和Swap())。然后我们使用sort.Sort(ByLength(names))根据字符串的长度将names数组按降序排序。

记住,sort包处理的是切片,而不是直接处理数组。如果你有一个实际的数组需要排序,你可以使用切片来引用数组的元素,如示例中所示。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O7LC9vvnkO_D7tgfTDsiKBlg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券