算法练习_C/C++
来源:互联网 发布:java常见异常类型 编辑:程序博客网 时间:2024/05/21 15:00
算法练习
github地址:https://github.com/lawlite19/AlgorithmExercises
一、 排序算法
1. 交换排序
- 冒泡排序
- 冒泡排序改进1
- 冒泡排序改进2
- 冒泡排序改进3
- 快速排序
2. 插入排序
- 直接插入排序
- 直接插入排序递归版
- 希尔排序
3. 选择排序
- 简单选择排序
- 二元选择排序
- 堆排序
4. 归并排序
- 二路归并排序递归版
- 二路归并排序非递归版
二、 字符串
1. 字符串旋转
- 字符串旋转_暴力法
- 字符串旋转_三步翻转法
2. 字符串包含
- 字符串包含判断_遍历
- 字符串包含判断_排序
- 字符串包含判断_素数乘积
- 字符串包含判断_哈希 ★★★
3. 回文
- 回文判断
4. 最长回文子串长度
- 最长回文子串长度_一般解法
- 最长回文子串长度_Manacher ★★★
- 算法说明
5. 全排列
- 全排列_递归
- 全排列_字典序排列
- 字典序全排列
6. 变形词
- 变形词判断
7. 字符串中数字串之和
- 字符串中数字串之和 ★
8. 去除字符串中连续K个0串
- 去除字符串中连续K个0串
9. 整数字符串转整数值
- 整数字符串转整数值 ★★
10. 字符串匹配问题
- 字符串匹配_KMP ★★★★★
- 算法说明
三、 数组和矩阵
1. 二维数组查找
- 二维数组查找
2. 矩阵相关操作
- 转圈打印矩阵
3. 最小的k个元素
- 最小的k个元素_堆
- 最小的k个元素_BFPRT ★★★★★
- 算法说明
4.中间数
- 中间数_辅助数组 ★
5.非负数组和为K的最长子数组
- 非负数组和为K的最长子数组_双指针 ★★★
8.次数出现大于N/K的数
- 次数出现大于N/2的数 ★
- 次数出现大于N/K的数 ★★★
9.逆序对
- 逆序对数_分治归并★
10.两个有序数组的中位数
- 两个有序数组的中位数_分治★★★★
- 算法说明
四、 递归和动态规划
1. 斐波那契问题
- 矩形覆盖_递归
- 矩形覆盖_dp ★
- 矩阵覆盖_矩阵转化_class实现 ★★★
- 矩阵覆盖_矩阵转化_vector实现 ★★★
- 算法说明
- 爬楼梯_递归
爬楼梯_dp ★
变态跳台阶_递归
- 变态跳台阶_直接计算 ★
2. 最大子数组和相关问题
- 最大子数组和_dp ★
- 两个不相容子数组最大和_辅助数组 ★★
3. 最长递增子序列相关问题
- 最长递增子序列_一般dp
- 最长递增子序列_dp优化 ★★
- 摞数组问题(俄国沙皇问题)_纯代码实现 ★★★★
- 摞数组问题(俄国沙皇问题)_借助stl ★★★★
五、 栈和队列
1. getMin功能栈
- getMin功能栈_方案1
- getMin功能栈_方案2
2. 两个栈实现队列功能
- 两个栈实现队列
七、二叉树
1. 遍历
- 先、中、后序遍历_递归
- 先、中、后序遍历_非递归 ★★
八、位运算
- 出现奇数次的数
1 0
- 算法练习_C/C++
- 快速排序算法_C++
- 遗传算法_C语言
- C#_C#中的事件
- C++_C风格字符串
- <C++>_C++的枚举
- C语言 MPI算法练习
- 算法竞赛_排列_C++
- 购物系统程序练习_C版
- 一个惊险的故事_C++输入输出练习
- C++_C++中attribute详解
- 黑马程序员-C语言算法练习
- c/c++算法练习2-韩信点兵
- 【LeetCode算法练习(C++)】 ZigZag Conversion
- 【LeetCode算法练习(C++)】Reverse Integer
- 【LeetCode算法练习(C++)】Palindrome Number
- 【LeetCode算法练习(C++)】3Sum
- 【LeetCode算法练习(C++)】4Sum
- [Java练习]输入一个字符串,输出其中某个小写字母出现的次数
- redis 启动多个实例
- python爬虫:爬取豆瓣读书某个tag下的书籍并存入excel
- 基于Linux环境下的NS3入门第一例子
- 05-树8 堆中的路径 (25分)
- 算法练习_C/C++
- 用Python实现八大排序算法--冒泡排序
- 部分和为特定的值
- SAE下的WordPress的固定链接
- [Java练习]JAVA中调用数据库的方法
- canvas学写一个字(慕课网学习)
- Java——第四章(数组和字符串)--数组
- linux指令 -- rm
- TCP可靠传输的实现