跳转到内容

argsort

int [] argsort(<type>value[])

返回一个索引列表,当这些索引应用于给定数组时,将产生一个按升序排列的序列。

这允许根据数组中元素的某些属性而非值本身对数组进行排序。

示例

按字符串长度排序

cvex main()
{
// 给定一个字符串数组...
string colors[] = {"Red", "Green", "Blue", "Orange", "Violet", "Indigo"};
// 创建包含对应长度的数组
int[] lengths = {};
foreach (string name; colors) {
push(lengths, len(name));
}
// 对长度进行排序并返回包含新排序的数组
int[] ordering = argsort(lengths);
// 获取按名称长度排序的颜色名称数组
string colors_by_len[] = reorder(colors, ordering);
printf("%s\n", colors_by_len);
}
// 输出 {Red, Blue, Green, Orange, Violet, Indigo}