你的代码逻辑上太混乱了,而且还有一个bug,就是如果list->next == NULL的话第三行会直接报错。 先把直接选择排序的原理弄懂——每次选最小的数出来加入到已经排好序的数组 void sort(LinkList* list) { list = list->next; if (!list) return; for (LinkList* lp = list; lp != NULL; lp = lp->next) { LinkList* pos = lp; // 记录当前最小值的位置 for (LinkList* ptr = lp; ptr != NULL; ptr = ptr->next) { if (pos->score > ptr->score) { pos = ptr; } } swap(lp->score, pos->score); // 交换,把最小值放到已排列的尾部 } } 没有检验,仅供参考。多看看书上的例子,好好理解。
点赞 2

相关推荐

01-15 13:52
已编辑
河南大学 Java
六年要多久:标准头像,不吃香菜😂
点赞 评论 收藏
分享
01-14 19:01
吉首大学 Java
黑皮白袜臭脚体育生:加个项目吧,一般需要两个项目一业务一轮子呢,简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写
点赞 评论 收藏
分享
牛客网
牛客企业服务