go排序后索引
最近碰上了一个需求,要得到排序后的原索引序列。
我又不希望自己重新实现一快排出来,所以在接口上重新封装了一下。
package main
import (
"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]
go排序后索引的更多相关文章
- Python 排序和numpy排序,得到排序后索引序列(及源list的序列)
Python list 排序 & np list 排序 nums = [1.25, 0.98, 6.13, 7.62] li = np.array(nums) print(li) out = ...
- Javascript 数组自定义排序,并获取排序后的保存原索引的同序数组(堆排序实现)
比如数组A: [ 0: 5, 1: 2, 2: 4, 3: 3, 4: 1 ] 排序后的结果为:[1, 2, 3, 4, 5],但是有时候会有需求想要保留排序前的位置到一个同位数组里,如前例则为:[4 ...
- python 序列排序 排序后返回相应的索引
https://blog.csdn.net/longwei92/article/details/83098289 https://blog.csdn.net/u013731339/article/de ...
- 将1~n个整数按字典顺序进行排序,返回排序后第m个元素
给定一个整数n,给定一个整数m,将1~n个整数按字典顺序进行排序,返回排序后第m个元素.n最大可为5000000.字典排序的含义为:从最高位开始比较.1开头的数字排在最前面,然后是2开头的数字,然后是 ...
- IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中
需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数 ...
- [原]Java面试题-将字符串中数字提取出来排序后输出
[Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...
- Java基础知识强化之IO流笔记52:IO流练习之 把一个文件中的字符串排序后再写入另一个文件案例
1. 把一个文件中的字符串排序后再写入另一个文件 已知s.txt文件中有这样的一个字符串:"hcexfgijkamdnoqrzstuvwybpl" 请编写程序读取数据内容,把数据排 ...
- mongodb中的排序和索引快速学习
在mongodb中,排序和索引其实都是十分容易的,先来小结下排序: 1 先插入些数据 db.SortTest.insert( { name : "Denis", age : ...
- sql语句-排序后加入序号再运算判断取想要的项
select a.id as aid,b.id as bid,a.city,a.cang,a.sid,a.time as atime,b.time as btime,a.price as aprice ...
随机推荐
- 微信支付:curl 出错,错误码: 60
在测试微信支付 - 模式二 - 扫码支付时,遇到如下错误: curl出错,错误码:60 这是因为在 WxPay.Api.php 文件中做了严格的 ssl 证书校验: curl_setopt($ch,C ...
- monkey测试===关于monkey测试的介绍
https://www.cnblogs.com/lauren1003/p/6193277.html
- Aspxgridview 根据条件来自定义计算Totalsummery
protected void ASPxGridView1_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEven ...
- Redis 基础使用(1)
redis 数据库的使用场景介绍 redis 是 NoSQL 数据库中的一种,特别适合解决一些使用传统关系数据库难以解决的问题,redis 作为内存数据库,如果在不合适的场合,对内存的消耗是很大的,甚 ...
- CF1064 E - Dwarves, Hats and Extrasensory Abilities
题意 交互题, 本来应该是在平面上进行的. 实际上换成一条直线就可以, 其实换成在平面上更复杂一些. Solution 假设\(l\)点是黑点, \(r\)处是白点, 那么就把下一个点的位置放置在\( ...
- 深度学习方法:受限玻尔兹曼机RBM(四)对比散度contrastive divergence,CD
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入 上篇讲到,如果用Gibbs Sa ...
- Letter Combinations of a Phone Number——简单的回溯算法
Given a digit string, return all possible letter combinations that the number could represent. A map ...
- GZIP压缩占用CPU大吗?
http://blog.csdn.net/hguisu/article/details/7793038 Filter之——GZIP全站压缩 http://www.cnblogs.com/jbelial ...
- 智能社官网顶部导航实现demo
从智能社的blue老师公开课中学习到了很多,在此表示感谢. 这个导航很好玩,于是就想实现一个. html <div id="box"> <ul> <l ...
- react native android 应用状态(前端或后台)的判断
当Android应用程序被暂时放到了后台,或者又重新回到前台,是否有相应的事件可以处理到? 例如,当你的应用暂时放到了后台,是否应该做出一些操作,暂时保存界面上的数据? 可以参考:https://gi ...