算法
柠檬有点酸
这个作者很懒,什么都没留下…
展开
-
opencv旋转矩形矫正
// 仿射变换矫正.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束#include "pch.h"#include <iostream>#include <opencv2/opencv.hpp>#include <math.h>//引用函数文件库#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp" using namespace.原创 2022-05-12 15:05:22 · 869 阅读 · 0 评论 -
合并集合
下边是ac代码#include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){ int n,m; while(cin>>n>>m) { vector<int> a; int p,...原创 2019-08-16 10:37:13 · 149 阅读 · 0 评论 -
C++全排列问题
将每一个位置的元素都和其他位置的元素交换 最后输出 就完成全排列的功能,这里调用递归的方法,代码如下#include <iostream>#include <cstring>#define N 100using namespace std;void permutation(char* a, int k, int m){ int i, j;...原创 2019-08-06 14:05:42 · 417 阅读 · 0 评论 -
排序算法代码实现
直接插入排序template<class T>void InsertSort(T* array, int n) { //array待排序数组,n:数组元素数量 int i, j; //循环变量 T temp; ...原创 2019-08-02 17:22:39 · 103 阅读 · 0 评论 -
排序算法总结
一、直接插入排序、冒泡排序和简单选择排序是最基本的排序方法,它们主要用于元素个数n(n<10000)不是很大的情形。它们的平均复杂度均为O(n^2),实现也比较简单。1、直接插入排序对于规模很小的元素序列(n<=25)非常有效。它的时间复杂度与待排序元素序列的初始排列有关。在最好情况下,直接插入排序只需要n-1次比较就可以完成,而且不需要交换操作。在平均情况下和最差情况下,直接...原创 2019-08-02 17:01:05 · 1226 阅读 · 0 评论 -
迪节特斯拉最短路径算法
最短路径求取依靠的是邻接矩阵从点1出发依次到其他各点的距离是无穷大代表无法到达,其中1->2的距离最短 然后查看2到达各点的距离发现2->4距离为3然后更新1点到各点的距离 依次是0、1、12、1+3、无穷、无穷然后查点4到达其余个点的距离然后 其到3点的距离为4,因为1+3+4<12故更新0、1、1+3+4、1+3、无穷、无穷观察点...原创 2019-06-25 23:42:45 · 919 阅读 · 0 评论 -
数组中的逆序对
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007方案一,将数组内的数字依次作比较,如果是逆序对则计数,但是这样的时间复杂度比较高,O(N^2),方案二,将数组二分直至分成每个数组中都含有至多两个元素,分别计算其中的逆序对例如下图中的...原创 2019-03-23 16:29:25 · 188 阅读 · 0 评论 -
把数字翻译成字符串
题目给定一个数字,按照如下规则翻译成字符串:0->a1->b...25->z因此一个数字可能有多种翻译。例如,12258有5种不同的翻译,bccfi,bwfi,bczi,mcfi,mzi。请实现一个函数,计算数字有多少种翻译方法。思路可以用递归解决,会发现子问题258 58都重复了。自然想到可以用动态规划来解决,用f(i)来表示从第i位...转载 2019-03-23 15:00:11 · 210 阅读 · 0 评论 -
面试过程中的一些算法题
废话不多说,直接开始1.如何找到数组中出现次数超过一半的数第一种方法是可以定义一个计数数组,遍历一次数组就能得到数组中出现元素的次数,然后在计数数组中找到次数大于N/2的元素。第二种方法使用快速排序,因为出现次数超过一半的元素肯定就在中位数上,这个中位数可不是数学里面的中位数,奇数个元素的是中间位置的数,偶数个元素的时候,就是N/2个位置或者N/2+1位置上的数,因为两个数字是相等的,...原创 2019-03-23 12:20:27 · 146 阅读 · 0 评论 -
kmp算法(查找字符串在长字符串中首次出现的位置)
kmp查找关键的地方首先是在next数组的创建next数组创建:abababac为例next数组第一位str[0]为next[0]=0,str[1]和str[0]不相同所以也为next[1]=0,str[2]动态规划先和str[1]比较,不相同,则比较str[1-1],相同故next[2]=1,str[3]和str[next[1]+1]比较相等则next[3]=next[2]+1=2,st...原创 2019-03-17 00:23:49 · 1333 阅读 · 0 评论