按照分数进行名次计算、名次排序
一个元素在一个序列中的名次是所有比它小的元素个数加上在它左边出现的与它相同的元素个数
例如:数组a=[4,2,9,2,6]是一个序列,各元素的名次为ra=[2,0,4,1,3]。
//名次计算
template<class T>
void rank(T a[], int n, int ra[])
{//给数组a的n个元素排名次结果在ra中返回for (int 1 = 0; i < n; i++){ra[i] = 0;//初始化}//比较所有元素for (int i = 1; i < n; i++){for (int j = 0; j < i; j++){if (a[j] <= a[i])ra[i]++;elsera[j]++;} }
}
利用名次计算后的结果ra[n],将成绩按照名次进行排序,函数如下:
//按照名次排序
template <class T>
void reOrder(T a[], int n, int ra[])
{T *u = new T[n];//定义数组u,将元素排序//把a中的元素添加在u中for (int i = 0; i < n; i++){u[ra[i]] = u[i];}//吧u中的数据复制给afor (int i = 0; i < n; i++){a[i] = u[i];}
}
在这回顾一下选择排序和冒泡排序的方法,程序分别如下:
//选择排序
template <class T>
viod selectSort(T a[], int n)
{for (int k = 0; k < n; k++){int recordMaxIndex = 0;for (int i = 0; i < n-k; i++){if (a[i]>a[recordMaxIndex])recordMaxIndex = i;}swap(a[n-k-1], a[recordMaxIndex]);}
}//冒泡排序
template<class T>
void bubbleSrot(T a[], int n)
{for (int i = n; i > 1; i--){for (int k = 0; k < i - 1; k++){if (a[k]>a[k + 1])swap(a[k], a[k + 1]);}}
}
按照分数进行名次计算、名次排序相关推荐
- JS根据分数,计算名次(分数相同名次相同)
1.首先先按分数从高到低排序,排序方法参照以下: https://blog.csdn.net/qq_29483485/article/details/85003814 以下是按降序排列好的学生列表: ...
- 围棋的分数计算机,围棋个人比赛中的成绩和名次计算方式
原标题:围棋个人比赛中的成绩和名次计算方式 很多家长陪孩子参加围棋比赛常常有这样的疑问.自己的孩子同样和其他的孩子一样,明明都是赢了多少轮,输了多少轮,名次怎么会有先后之分?其实,这是因为比赛规则所致 ...
- 循环小数是分数集合吗_人教版小学数学三年级上册 分数的简单计算 教案、课件,公开课视频...
人教版小学数学三年级上册<分数的简单计算>教学设计 教学目标: 1 理解分数加减法的意义. 2 初步掌握同分母分数加减法的算理和计算法则.并能正确计算比较简单的同分母分数加减法. 3 引导 ...
- Java中使用Rational类实现分数精确的计算,
Java中使用Rational类实现分数精确的计算, 在Java中实现分数的精确计算(Rational类) 在Java中想要进行有分数精确的计算,例如1/3=0.33333333-,这个数字不能用do ...
- django 按经纬度计算距离排序
django 按经纬度计算距离排序 需求: 实现离用户距离最近的店铺排序 公式: 公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1–Lat2 为 ...
- HDU1285 确定比赛名次【拓扑排序】
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- HDU 1285 - 确定比赛名次(拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- [ACM] hdu 1285 确定比赛名次 (拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- HDU 1285:确定比赛名次(拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
最新文章
- 精益与敏捷开发(随笔)
- 计算机旁边快速访问没有桌面图标了怎么办,桌面找不到我的电脑(计算机)图标的解决办法-win10桌面显示我的电脑...
- JAVAWEB 一一 SpringMVC(注解)
- Java8 Stream详解~Stream 创建
- Java并发编程实战~Happens-Before 规则
- VScode配置java开发环境
- boost库的lock_ops类的变化
- [Hadoop] - 异常Cannot obtain block length for LocatedBlock
- sklearn 下的 ensemble learning
- 全栈工程师可以分为哪几类?
- AchartEngine绘图引擎
- 跟踪某个类所创建对象的个数
- 要闻君说:华为“发飙”了;快手抛出了1000+社招岗位;迅雷2018年度财报:云连续三年上涨;定论!小米成立AIoT战略委员会...
- Unity优化百科(UWA 博客目录)
- 通知与服务——服务Service——服务的绑定与解绑延迟绑定服务与解绑服务
- 01_03 获取答案
- BM25算法——(他人写)
- Java两个网页之间的文件互传_如何让两台 PC 进行文件传输?
- 开源:全球软件产业四大发展趋势之一(转)
- 在php中调用java的方法