Julia程序设计3 数组2 排序、复制、集合运算、字典

排序

1、Julia中数组排序最基础的函数是sort,它默认是从小到大排序,如果加上rev = true就是从大到小:

julia> a = [2,6,3,4,1,7,8,5]
8-element Array{
   Int64,1}:
 2
 6
 3
 4
 1
 7
 8
 5

julia> sort(a)
8-element Array{
   Int64,1}:
 1
 2
 3
 4
 5
 6
 7
 8

julia> sort(a, rev = true)
8-element Array{
   Int64,1}:
 8
 7
 6
 5
 4
 3
 2
 1

2、用sortperm()可以返回按从小打到排列的元素的指标,比如a中1在第5位,2在第一位,那么sortperm就会返回5,1,。。。

julia> I = sortperm(a)
8-element Array{
   Int64,1}:
 5
 1
 3
 4
 8
 2
 6
 7

julia> a[I] # 将a中的元素按I的顺序还原
8-element Array{
   Int64,1}:
 1
 2
 3
 4
 5
 6
 7
 8

3、sort中加上by = abs可以按绝对值从小到大排序,by = 和rev = 可以一起用;事实上 by = 可以接任何实值函数,比如 by = sin,by = exp或者自定义函数

julia> b = [9,-3,0,4,-5]
5-element Array{
   Int64,1}:
  9
 -3
  0
  4
 -5

julia> sort(b, by = abs)
5-element Array{
   Int64,1}:
  0
 -3
  4
 -5
  9

julia> sort(b, by = abs, rev = true)
5-element Array{
   Int64,1}:
  9
 -5
  4
 -3
  0

julia> sort(b, by = sin)
5-element Array{
   Int64,1}:
  4
 -3
  0
  9
 -5

4、多维数组排序需要指定维数:

julia> A = [[1,4,3] [2,6,8] [4,4,7]]
3×3 Array{
   Int64,2}:
 1  2  4
 4  6  4
 3  8  7

julia> sort(A, dims = 1
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值