[go包]sort包的使用

前言

今天写题,用到了sort包,当时不是很了解改包的使用方法,晚上下课后,过来看了下,故写下此篇文章,助于自己的学习

1.常用方法

1.Ints()  // 针对于整数类型排序
2.Float64s() // 浮点数类型排序
3.Strings() //字符串类型排序
4.StringsAreSotred() // 判断传入的string类型数组或者切片是否有序
5.IntsAreSorted()
6.Float64sAreSorted()

测试代码:

//	1.整数类型排序
	intValue := []int{10,20,5,8}
	sort.Ints(intValue)
	fmt.Println("Ints",intValue)
//	2.对浮点类型排序,只能对与64位类型
	float64Val := []float64{10.5,20.5,8.5,5.5}
	sort.Float64s(float64Val)
	fmt.Println("float64",float64Val)
//	3.对字符串类型排序
	stringVal := []string{"c","b","a"}
	sort.Strings(stringVal)
	fmt.Println("string",stringVal)
	

//	判断某个切片是否已经有序
	str := sort.StringsAreSorted(stringVal)
	fmt.Println("isstr:",str)

输出结果
在这里插入图片描述

经过测试,发现判断某个数组或者切片是否有序的方法,只针对于升序,而且排序规则也默认为升序.如果想要降序排序,我们可以修改sort的排序规则:

也就是需要实现以下3个接口:

Len() // 长度
Less() // 指定排序规则
Swap() // 交换

测试代码:

type arr []int

func (a arr) Len() int {
	return len(a)
}
// Less  指定排序规则
func (a arr) Less(i,j int) bool {
	return a[i] > a[j]
}

// Swap 交换
func (a arr) Swap(i,j int) {
	a[i],a[j] = a[j],a[i]
}
func main()  {
	nums := []int{1,2,3,4,5,6}
	//转换数据类型再排序
	sort.Sort(arr(nums))
	//或者直接声明改类型
	a := arr{3,4,5,6,7}
	sort.Sort(a)
	fmt.Println(a)
	fmt.Println(nums)
}

结果:
在这里插入图片描述
这样就实现降序排序了~

本篇文章就到这里,如有错误,欢迎指出.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值