在用IDL排序这件事情上,我比较浮躁。sort函数我是老早就知道的,但是刚开始试着用的时候有些误解,因为函数的返回值都是整数。以前接触的排序函数的返回值都是排好序的数,所以我一直以为把sort函数的数据类型搞错了。但是无论我怎么弄返回值都是整数。后来我就转向用别的工具排序了。
有一天在网上搜排序算法,发现一段用IDL写的快速排序算法,非常简洁,我本打算用到程序里去,但是发现后面赫然写着,“这段程序只作教学用,其实IDL中有一个非常强大的优化的排序函数,sort”。我顿悟,sort返回的是数组的指标!一查,果然如此。有了返回的指标,要得到返回的数就是很自然的了。
为什么不直接返回排好序的数呢?因为指标有很多用处,比如,有一个二位数组,如果要按某一列数的大小顺序对此二维数组的行进行重新排序,sort函数返回的此一列数排序后的指标就相当有用了。如果sort函数只是返回排好序的数,就很难实现对二维数组的行重新排序。从指标可以得到排序后的数,反过来就难了。
https://wap.sciencenet.cn/blog-117333-476786.html
上一篇:
IDL颜色表操作下一篇:
关于射电望远镜的指向定标(一)