我试图从球员曲棍球统计数据的二进制文件中整理一个列表。我的目标是使用选择排序算法,根据游戏中得分=目标+助攻的点数对列表进行降序排序。
我使用的是一个结构数组,其中每个数组都是玩家统计的结构。
这是结构。
struct Player
{
char name[20];
int goals;
int assists;
int rating;
};到目前为止,这就是我的排序数组函数中的内容。
void sortArrays( Player players[], int numPlayers)
int top=0;
int ssf;
int last=numPlayers;
int ptr;
int i = 0;
Player temp;
while (top < last)
{
ptr=top;
ssf=top;
pnts = players[i].goals + players[i].assists;
i++;
}在这之后我被困住了。
下面是函数应该在广义上执行的步骤。
发布于 2013-04-10 22:44:59
你必须使用选择排序吗?如果定义了自定义比较函数,则可以使用std::sort:
bool compare_players(Player const& a, Player const& b) {
return (b.goals + b.assists) < (a.goals + a.assists);
}然后把你的球员扔进一个名为vector players的游戏里
std::sort(players.begin(), players.end(), &compare_players);与实现选择排序(O(n^2))相比,这是更少的代码,而且它也更高效(O(n log n))。
https://stackoverflow.com/questions/15937735
复制相似问题