我试图从球员曲棍球统计的二进制文件中排序列表 . 我的目标是使用选择排序算法根据点数=目标助攻的游戏中的点数以降序对列表进行排序 .
我正在使用一个结构数组,其中每个数组都是玩家统计数据的结构 .
这是结构 .
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++;
}
在此之后我被困住了 .
以下是该功能假设要广泛执行的步骤 .
-
使用公式points = player [i] .goals player [i] .assists计算点数
-
根据点数按降序对结构数组进行排序 .
-
交换不同的数组,直到列表按照最大点数的降序排序 .
1 回答
你必须使用选择排序吗?如果定义自定义比较函数,则可以使用
std::sort
:然后将你的玩家扔进一个名为
players
的vector
这是更少的代码,并且它比实现选择排序(O(n ^ 2))更有效(O(n log n)) .