按照分数进行名次计算、名次排序
来源:互联网 发布:互联网专线和数据专线 编辑:程序博客网 时间:2024/05/04 17:11
一个元素在一个序列中的名次是所有比它小的元素个数加上在它左边出现的与它相同的元素个数
例如:数组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]);}}}
1 0
- 按照分数进行名次计算、名次排序
- 计算名次排序
- 计算名次与按名次排序问题的算法优化
- 名次排序
- 计算名次元素在队列中的名次
- 用SQL计算名次
- 用SQL计算名次
- 【九度OJ】1167【快速排序】【计算名次】【C实现】
- 实现对编译出来的名次进行顺序排序
- 数组个元素名次计算
- FR关于排序名次、分组排序名次问题
- 拓扑排序-- 确定比赛名次
- HDU 1285 - 确定名次排序
- [BOI2007]名次排序问题(sorting)
- 【九度OJ】1007【计算名次】
- 按某一字段排序生成名次
- HDOJ 1285:确定比赛名次 拓扑排序
- 【拓扑排序】 hdu1285 确定比赛名次
- ButterKnife 使用方法
- 简单选择排序示例
- RxJava系列第一弹——RxJava入门篇
- iOS中 +(void)load +(void)和initialize的区别
- TCP/IP协议
- 按照分数进行名次计算、名次排序
- ubuntu忘记登录密码
- 什么是MFC,用MFC建立一个简单的计算器应用程序
- hdu1166敌兵布阵(线段树)
- linux驱动程序开发2
- 旋转木马轮播图
- 新闻翻译:俄罗斯否认牵涉雅虎账户泄露案
- EF映射之DataBaseFirst
- PL/SQL Developer使用技巧、快捷键