- 博客(5)
- 资源 (6)
- 收藏
- 关注
原创 快速排序及三向快速排序(c++版)
快速排序是一种原址,不稳定的排序算法,最坏情况下运行时间为O(n^2),如果采用随机化选取主元或实际情况能达到快速排序划分子问题时能使两个子问题的问题规模划分是常数比例的,就能使运行时间保持在O(n * lgn),而划分的好坏只会改变其常数因子。 三向快速排序主要是解决序列存在大量相同元素时,通过快速排序平均还是需要O(n * lgn),而三向快速排序在所有元素全部相同时只需要O(n) 下面给...
2018-04-24 16:22:48 597
原创 堆排序与优先队列(c++实现版)
形成堆: 首先形成堆,我们有两种处理(“上浮”和”下沉”) 上浮:在原堆尾添加元素时,通过比较添加元素和原堆(二叉树)中父节点关系,决定是否继续上浮 下沉:在原堆首添加元素时(此时添加元素是二叉树的根节点),通过比较父节点与左右节点,找出最大的节点,通过是否交换元素,判断是否需要继续下沉 上浮和下沉最坏情况都是lgn,其实就是和二叉树树高有关 T(n) = O(lgn) 总结:两种方法都...
2018-04-23 18:01:25 718
原创 随机序列常用算法
#include <stdio.h> #include <vector> #include <random> #include <chrono> #include <cmath> #include <algorithm> #include <iostream> using namespace std; /* Au
2018-04-21 19:19:05 1304
原创 矩阵乘法
#include <iostream> #include <random> #include <stdio.h> #include <chrono> using namespace std; void strassen_sub_multi_matrix(struct SubMatrix&, struct SubMatrix&, st...
2018-04-20 11:18:04 219
原创 最大子序列和的线性求解算法
主要思路:该算法的主要算法主要是考虑权重和采用迭代的思想解决 第一步:我们首先得到一个线性序列,A[1……n],当只有A[1]时,我们得知,该线性序列最大子序列为A[1] 第二步:迭代该序列,我们得到A[1….j],第一次 进行第一步时j = 2,此时最大子序列为A[1]或A[1,2],我们可知A[1] + A[2]如果小于A[2],我们可知,这两项的权重相当于正数序列加上一个负数,相当于加上...
2018-04-13 13:32:45 478
基于qt5的学习资料
2018-07-22
PostgreSQL 中文文档
2018-05-23
Qt5开发教程
2017-04-02
Qt5开发教程实例及代码
2017-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人