排名新方法:无比排序

Author: 章海峰 Date: 2001年 35期

?牐牨收咴亩亮恕兜缒员ā返?30期B11版《解决“排名次”问题》的文章,想起了本人在解决该问题时的算法:无比排序。这种算法的特点是无须比较键值的大小,因此效率很高,不过在实现的过程中需要辅助存储且对键值不是整数类型需要辅助变换及多次排序。
  ?牐犗旅嬉浴鞍囱?习成绩总分排出名次”为例详细说明。本例中所使用的变量交待如下:
  ?牐燾j(n):第n位学生的成绩
  ?牐爉c(n):第n位学生的名次
  ?牐爖f:总分满分值
  ?牐爎s(x):成绩为x的人数
  ?牐燿yrs(x):成绩>x的人数
  ?牐犓惴ǎ?
  ?牐?1.统计每个分值的人数/循环 n 人;
  ?牐?2.累计大于该分值的人数 /循环 zf 次;
  ?牐?3.根据学生的总分及大于该学生总分的人数确定名次;
  ?牐犗旅媸荲B的过程代码:
  ?牐燬ub Pmc()
  ?牐燚im fs(zf),zyrs(zf+1)
  ?牐燜or i = 1 To n
  ?牐爎s(cj(i))=rs(cj(i))+1
  ?牐燦ext i
  ?牐燜or i = zf To 1 Step -1
  ?牐燿yrs(i-1)=dyrs(i)+rs(i)??
  ?牐燦ext i
  ?牐燜or i = 1 To n
  ?牐爉c(i)= dyfs(cj(i))+1
  ?牐燦ext i
  ?牐燛nd Sub
  ?牐犉渌镅缘某绦蚩梢来死嗤啤?
  ?牐犚陨鲜且约滴》段д某绦颍迸判蚣滴ふ汀⒏〉闶⑷掌谑奔浜妥址壤嘈突蚴莶皇怯檬槎窍咝员恚约靶璋磁判蚪峁匦屡帕形恢玫人惴ň筒蛔甘隽恕?
  ??