Algorithm 如何根据数字值对数字进行排序?

Algorithm 如何根据数字值对数字进行排序?,algorithm,math,Algorithm,Math,如何将任意数字列表转换为排名列表 以以下数字为例: 1, 2, 3, 3, 6, 8, 8, 8, 9, 10, 10, 11 翻译成排名表: rank: value 1: 1 2: 2 3: 3 3: 3 4: 6 5: 8 5: 8 5: 8 6: 9 7: 10 7: 10 8: 11 有什么优雅的方法可以做到这一点吗?你可以做到 让arr=[1,2,3,3,6,8,8,8,9,10,11]; 设idx=0; 对

如何将任意数字列表转换为排名列表

以以下数字为例:

1, 2, 3, 3, 6, 8, 8, 8, 9, 10, 10, 11
翻译成排名表:

rank: value
   1: 1
   2: 2
   3: 3
   3: 3
   4: 6
   5: 8
   5: 8
   5: 8
   6: 9
   7: 10
   7: 10
   8: 11
有什么优雅的方法可以做到这一点吗?

你可以做到

让arr=[1,2,3,3,6,8,8,8,9,10,11];
设idx=0;
对于(设i=0;i0&&arr[i]==arr[i-1])
console.log(idx);
其他的
console.log(++idx);

}
Stuff优雅,按照您已经完成的方式完成。。。第一个数字的秩为1,读取下一个数字,如果它与前一个数字相同,则为其提供相同的秩如果不将1添加到秩中,则重复此操作,直到完成为止。在SQL中创建一个仅在看到新值时才增加的整数值Well:使用稠密的_rank()分析函数。但我不确定您尝试使用的是什么语言/工具<代码>选择否,在(按否排序)上密集排列(),因为cte中的rnk假设输入数组的顺序为否?(问题中的任意数字对吗?)(很容易修复,但就是这样)问题提供了一个已经排序的数字列表作为示例,我认为@marvel308有权从这一点开始给出答案。