结构体的排序

对于排序的方法,我们知道很多种。但实际应用中,最麻烦的不是排序本身,因为几乎所有语言都提供了排序的函数。而麻烦的是不经需要排序,还需要把一些附带的数据的位置也跟着重新排列。

比如我们有很多学生的资料。每个学生是一个对象,然后这些对象按一定顺序放在一个数组里面。我们一会儿想按照学生成绩来排列这些对象,一会儿想按照学生身高来排列。那么有些什么思路来实现这类操作呢:

  1. 把要比较的量单独组成一个数组。对这个数组排序,但要求排序的函数能够提供排序后的下表索引对应。也就是排序前后下标的对应。然后我们根据这个对应来重新排列所有对象。如果排序函数不能提供下标对应,可以排序后,进行一遍搜索,按照值把对应关系简历起来。
  2. 如果使用的语言提供了sort函数,并且可以把自定义的比较两个元素大小的函数传入给sort。这样我们可以只用对象的某一些成员来比较,但最终把整个对象都排序了。
data.sort(function (left, right) {
        return left['level'] < right['level'] ? -1 : 1;
      })

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值