2022-07-05 QQ音乐面试记录及复盘
考试成绩排序
题目: 给定考生名称、数学成绩、语文成绩,要求总分高的排前面,总分一样数学成绩优先,数学成绩一样语文成绩优先,都一样情况下,按考生名称排序。注:不能使用排序库函数
过程:我一看,这不简单,不就是基本的排序算法吗,快速排序和冒泡排序。题挺简单,但我一时间没想起来怎么写。终于回想起了冒泡排序的算法,后面在排序条件上踩了一个坑,耽误了点时间,最后还是在要求时间内写出来了。
package main
import (
"fmt"
)
//假设学生有两门课程语文和数学,如:XiaoMing(80, 90),
//实现一个班级名次排名,要求总分高的排在前面,当总分相同时,
//数学成绩高的在前面,若两门课程均相同时,按姓名拼音排序,
type student struct {
Name string
Math int
Chinese int
}
func main() {
studentList := []*student{
{
Name: "A1",
Math: 90,
Chinese: 85,
},
{
Name: "A2",
Math: 94,
Chinese: 105,
},
{
Name: "A3",
Math: 95,
Chinese: 80,
},
{
Name: "A4",
Math: 95,
Chines