![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++算法
哦咧哇岸居
一个C++渣渣
展开
-
无重复字符的最长子串——C++实现
题目如标题。分析过程:最终目标:最长子序列。目标翻译:找到最长子序列的开始位置和结束位置。过程:①先找到一个递增子序列,用三个标记 记录其开始位置beg1、结束位置end1、元素个数len1。②遍历下一个递增子序列,用另外三个标记 记录其开始位置beg2、结束位置end2、元素个数len2。③比较len1和len2,如果len2 < len1,则复用标记beg2、end2、len2;否则复用beg1、end1、len1。④遍历下一个递增子序列,用复用的标记beg、end原创 2020-06-25 01:14:21 · 1838 阅读 · 0 评论 -
【C++算法】快速排序
基准数的选择:采用范围的中间位置的数编译环境:C++11代码实现如下:#include <type_traits> // std::declval typedef unsigned long size_type; template<typename _Tp>constexpr size_type distance(const _Tp &_1,...原创 2020-02-14 11:09:09 · 827 阅读 · 0 评论 -
【C++算法】计数排序
计数排序,并非基数排序。暂时只支持数值型编译环境:C++11代码实现如下:#include <cstring> // std::memset#include <type_traits> // std::declval/* 计数排序 * [@beg, @end) 待排序的范围,同时保存结果,须支持前向迭代 * [@min, @max) 待排序范围的...原创 2020-02-14 10:49:30 · 428 阅读 · 0 评论 -
【C++算法】希尔排序
编译环境:C++11代码实现如下:#include <cmath> // std::log2 std::pow#include <type_traits> // std::declvaltypedef unsigned long size_type;template<typename _Tp>constexpr size_type dis...原创 2020-02-14 10:39:47 · 450 阅读 · 0 评论 -
【C++算法】归并排序
这里不介绍归并排序的具体算法,不懂的可以看百度百科。编译环境:C++11代码实现如下:#include <type_traits> // std::declvaltypedef unsigned long size_type;template<typename _Tp>constexpr size_type distance(const _Tp &a...原创 2020-02-14 10:34:32 · 493 阅读 · 0 评论 -
【C++算法】插入排序
本次实现的,是直接插入排序算法,暂时不做优化。编译环境:C++11代码实现如下:template<typename _Tp>struct Comparator{ int operator()(const _Tp &arg1, const _Tp &arg2) const { if(arg1 < arg2) retu...原创 2020-02-14 10:20:48 · 176 阅读 · 0 评论 -
【C++算法】冒泡排序及其优化
关于冒泡排序算法,这里就不多说了。简单说一下优化,一般的冒泡排序是单向的,而其优化之一就是双向冒泡:正向扫描获取最大值,反向扫描获取最小值。由于C++11以前的实现有点复杂,在此就基于C++11新特性来实现,并写成库的形式。编译环境:C++11代码实现如下:#include <type_traits> // std::declvaltemplate<ty...原创 2020-02-14 10:07:06 · 337 阅读 · 0 评论