算法笔记(1)| 排序

1.简单选择排序

void selectSort(){
    for(int i=0;i

2.直接插入排序

void insertSort(){
    for(int i=1;i0 && t

3.sort()函数

#include
#inclue
using namespace std;

bool cmp(int a,int b){
    return a

4.解题技巧

1.相关结构体的定义
在某些题目中可能会出现学生的考试成绩,学号,排名等信息。这些信息在排名的时候可能会用到,因此可以直接使用结构体来创建学生对象:

struct Student{
    char name[10];
    int score;
    char num[20];
    int rank;
}stu[1000];  //直接定义一个Student的数组

2.cmp函数的编写
在有些题目中可能会有这样的要求:即当学生的成绩相同时,按照学生姓名的字典序进行排列。此时就可以用到cmp函数来使用sort()进行排序:

bool cmp(Student a,Student b){
    if(a.score == b.score){
        return strcmp(a.name,b.name)<0;
    }
    else{
        return a.score

3.排名的实现
在有一些需要排名的题目当中,可能会有这样的要求:分数不同的排名不同,分数相同的排名相同,但是需要占用一个排名位。解决此类问题的方法是直接再结构体当中定义排名(rank),然后再进行遍历:

stu[0].rank = 1;
for(int i=1;i

你可能感兴趣的:(算法笔记(1)| 排序)