[go] 快速排序

Posted adream307

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[go] 快速排序相关的知识,希望对你有一定的参考价值。

实现gosort.Interface接口,实现自定义数据类型的快速排序

package main

import (
	"log"
	"sort"
)

type myStructExp struct 
	id int

type myStructExps []*myStructExp

func (s myStructExps) Len() int 
	return len(s)


func (s myStructExps) Less(i, j int) bool 
	return s[i].id < s[j].id


func (s myStructExps) Swap(i, j int) 
	s[i], s[j] = s[j], s[i]


func main() 
	var ss myStructExps
	for i := 10; i > 0; i-- 
		d := &myStructExpid: i
		ss = append(ss, d)
	
	for _, s := range ss 
		log.Println(s.id)
	
	log.Println("==========")
	sort.Sort(ss)
	for _, s := range ss 
		log.Println(s.id)
	


程序输出

2020/08/29 16:23:01 10
2020/08/29 16:23:01 9
2020/08/29 16:23:01 8
2020/08/29 16:23:01 7
2020/08/29 16:23:01 6
2020/08/29 16:23:01 5
2020/08/29 16:23:01 4
2020/08/29 16:23:01 3
2020/08/29 16:23:01 2
2020/08/29 16:23:01 1
2020/08/29 16:23:01 ==========
2020/08/29 16:23:01 1
2020/08/29 16:23:01 2
2020/08/29 16:23:01 3
2020/08/29 16:23:01 4
2020/08/29 16:23:01 5
2020/08/29 16:23:01 6
2020/08/29 16:23:01 7
2020/08/29 16:23:01 8
2020/08/29 16:23:01 9
2020/08/29 16:23:01 10

注意事项,必须实现定义 type myStructExps []*myStructExp 类型,然后在这个类型上实现 sort.Interface 接口

以上是关于[go] 快速排序的主要内容,如果未能解决你的问题,请参考以下文章

Go语言实现冒泡排序选择排序快速排序及插入排序的方法

Go语言冒泡选择插入快速排序实战浅析

Go语言快速排序

go实现冒泡排序和快速排序

用Go实现冒泡排序选择排序和快速排序的运行效率比较

go快速排序