博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go排序后索引
阅读量:6499 次
发布时间:2019-06-24

本文共 722 字,大约阅读时间需要 2 分钟。

最近碰上了一个需求,要得到排序后的原索引序列。

我又不希望自己重新实现一快排出来,所以在接口上重新封装了一下。

package mainimport (    "fmt"    "sort")type SortIndexs struct {    sort.IntSlice // 可以替换成其他实现了 sort.Interface     indexs []int}func (p *SortIndexs) Swap(i, j int) {    p.IntSlice.Swap(i, j)    p.indexs[i], p.indexs[j] = p.indexs[j], p.indexs[i]}func NewSortIndexs(arr []int) *SortIndexs {    s := &SortIndexs{IntSlice: sort.IntSlice(arr), indexs: make([]int, len(arr))}    for i := range s.indexs {        s.indexs[i] = i   // 原有排序 indexs    }    return s}func main() {    s := NewSortIndexs([]int{5,8,10,2,9,6})    sort.Sort(s)    fmt.Println(s.indexs)    fmt.Println(s.IntSlice)}

输出

[3 0 5 1 4 2][2 5 6 8 9 10]

转载于:https://www.cnblogs.com/hutusheng/p/6849025.html

你可能感兴趣的文章
固定资产打印条码标签应用方案
查看>>
语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...
查看>>
oracle相关操作
查看>>
oracle数据库同步交换的方法
查看>>
Java读取Properties配置文件
查看>>
抓取网页的脚本 【修复】
查看>>
php 的 危 险 参 数
查看>>
linux系统小记
查看>>
Centos6.4最小化安装系统初始化脚本
查看>>
PaaS变厚了
查看>>
赛门铁克开启“容灾即服务”时代
查看>>
复杂度归纳--小结
查看>>
基础篇9-python基本数据结构-列表
查看>>
PHP学习笔记 第八讲 Mysql.简介和创建新的数据库
查看>>
【git】git入门之把自己的项目上传到github
查看>>
js获取鼠标位置
查看>>
[20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt
查看>>
2016.8.11 DataTable合并及排除重复方法
查看>>
php 魔术方法 说明
查看>>
Mysql
查看>>