算法
排序、查找、动态规划与算法思想
- C++ 排序算法实践:冒泡排序,相邻比较,大数后移
你第一次学排序,大概率是被冒泡排序领进门的。
- C++ 排序算法实践:桶排序,分而治之,各桶归位
假设你有一堆 0 到 1 之间的小数要排序。
- C++ 排序算法实践:计数排序,不比较,直接数
假设你要给一个班级的考试成绩排名,分数范围是 0 到 100 分。
- C++ 排序算法实践:堆排序,建堆弹出,原地有序
想象一下比赛颁奖的流程。
- C++ 排序算法实践:插入排序,像整理扑克牌一样逐张归位
你打扑克牌的时候是怎么理牌的?
- C++ 排序算法实践:归并排序,分而治之,有序合并
假设你要把两摞已经各自排好序的扑克牌合并成一摞有序的,怎么做?
- C++ 排序算法实践:快速排序,选基准,分区,递归征服
你组织活动分组的时候有没有用过这招:随便找个人站出来当基准,比他瘦的站左边,比他胖的站右边,然后对左右两组重复同样的操作... 几轮下来所有人就按体重排好了。
- C++ 排序算法实践:基数排序,逐位分配,按位收集
现在你要给一堆身份证号进行排序,如何做呢?
- C++ 排序算法实践:选择排序,每轮挑个最小的放到前面
你有没有这样整理过书架?
- C++ 排序算法实践:希尔排序,分组插入,逐步逼近有序
插入排序有个明显的短板。