k8凯发在我们参加的各种竞赛中,允许并列的排名方式是经常遇到的。 例如有四名选手的成绩分别为50、80、50、30分,则80分的选手为第一名,50分的两名选手均为第二名,30分的选手为第四名k8凯发。 请编写一个程序,计算每个选手在这种排名方式之下的名次(分数高的选手排前面)。
本地首先想到的就是采用排序。但稍加分析,发现只是要求每名选手的排名,并没要求将各位选手按序排列,因此可以另辟蹊径,对每一位选手而言,不管有没有并列k8凯发,他的名次=所以比他成绩高的人数+1,本期可以采用只比较分数高度,而不需要交换,也不需要占用另外的空间,减少了时间和空间复杂度。