| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1276 人关注过本帖
标题:c++1178:成绩排序不用结构体
只看楼主 加入收藏
合适的话
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-7-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
c++1178:成绩排序不用结构体
搜索更多相关主题的帖子: 成绩 c++ 结构体 排序 
2022-08-12 13:55
md00000000
Rank: 4
等 级:业余侠客
威 望:7
帖 子:105
专家分:289
注 册:2017-6-22
收藏
得分:4 
这个需求好奇怪,可以手写排序。
2022-08-12 14:55
sloth646
Rank: 2
等 级:论坛游民
威 望:2
帖 子:3
专家分:21
注 册:2021-7-13
收藏
得分:4 
// 假设数据在数组中
void select(int *arr, int len){
    int _index;
    for (int i = 0; i < len - 1; i++){
        _index = i;
        for (int j = i + 1; j < len; j++) {
            if (arr[_index] > arr[j]) {
                _index = j;
            }
        }
        if (i != _index){
            swop(arr + i, arr + _index);// 交换数据
        }
    }
}
2022-08-12 15:26
宋宇轩
Rank: 2
等 级:论坛游民
帖 子:15
专家分:21
注 册:2022-8-9
收藏
得分:4 
题目发一下
2022-08-12 16:45
md00000000
Rank: 4
等 级:业余侠客
威 望:7
帖 子:105
专家分:289
注 册:2017-6-22
收藏
得分:0 
我觉得楼主应该是有两个数组,但不想用结构体把他们串起来然后调用排序指令。这种情况我觉得可以手写排序。
2022-08-12 16:57
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1487
专家分:9072
注 册:2010-3-16
收藏
得分:4 
不用结构体用class呗。
2022-08-12 21:13
md00000000
Rank: 4
等 级:业余侠客
威 望:7
帖 子:105
专家分:289
注 册:2017-6-22
收藏
得分:0 
这个是原地排序两个数组的代码
程序代码:
#include <string>
#include <algorithm>

using namespace std;

void QuickSort(string name[], float score[], int left, int right) { 
    // int pivot = score[right];
    int pivot = score[rand() % (right - left) + left];

    int tmp = left - 1;
    for (int j = left; j < right; j++) {
        if (score[j] < pivot) {
            tmp++;
            swap(score[j], score[tmp]); 
            swap(name[j], name[tmp]);
        }
    }
    tmp++;
    swap(score[right], score[tmp]);
    swap(name[right], name[tmp]);
    
    if (left < tmp - 1) QuickSort(name, score, left, tmp - 1);
    if (tmp + 1 < right) QuickSort(name, score, tmp + 1, right);
} 


用的时候这样用
string name[] = {"a", "b", "c", "d", "e"};
float score[] = {1, 2, 40, 3, 9};
QuickSort(name, score, 0, 4);


虽然采用了较为稳定版本的快速排序,但这尚不是性能最大化的代码,将就着用,如果数据量过大,你愿意等的话可以用,不愿意等很长时间的话就要另外写代码咯

[此贴子已经被作者于2022-8-13 00:47编辑过]

2022-08-12 23:53
op123
Rank: 6Rank: 6
等 级:贵宾
威 望:21
帖 子:170
专家分:461
注 册:2022-6-4
收藏
得分:4 
还可以直接定义数组来写
2022-08-14 18:00
快速回复:c++1178:成绩排序不用结构体
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016212 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved