![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基本算法练习
梦鸢MoYuan
unity开发,求职中,捞我!
展开
-
全排列递归算法
有以下数组int num[] = {1,2,3,4};它的全排列为:1,2,3,42,1,3,43,1,2,44,1,2,3......等等可以 看出 每一个数都可以放到第一个位置上面 // num:待排列数组 k: 初始传入0 表示从第一个数开始 len: 数组长度void fun(int num[], int k, int len){ // ...原创 2018-02-24 22:31:34 · 494 阅读 · 1 评论 -
排序算法进阶-堆排序
堆排序是一种高效的排序方法,在某种意义上说排序速度要优于快速排序;堆排序不需要递归进行,不需要辅助空间;时间复杂度稳定为 n * log2 ^ n;//定义一个数组int num[] = {3,2,4,5,7};下面是堆排序时的抽象空间图: 每一个父节点,都对应一个子节点, 左子叶为 a * 2 + 1 ; 右子叶为 a * 2 + 2; 而最后一个有子叶的...原创 2018-02-16 23:41:14 · 180 阅读 · 0 评论 -
16进制转10进制
#include<bits\stdc++.h>int main(){ // 储存 16进制数字 char numTo16[100] = {'\0'}; // 储存 10进制数字 int sumTo10 = 0; gets(numTo16); int len = strlen(numTo16); int i = 0;...原创 2018-02-24 23:11:40 · 285 阅读 · 0 评论 -
2进制转10进制
基本思想:解析字符串(0 or 1)分离每个位权数累加#include<bits\stdc++.h>// 2 进制转 10 进制 int main(){ char numTo2[1000] = {'\0'}; // 输入 2 进制数据 0 or 1 gets(numTo2); int i = 0; // 位权 ...原创 2018-02-24 22:52:12 · 456 阅读 · 0 评论 -
double 和 int 转换 时的精度问题
double t = 3.9;int x = (int)(t + 0.5);// 当 t > 0.5时 可以避免转换成3 cout << x;// 输出为: 4原创 2018-03-31 14:59:37 · 2235 阅读 · 0 评论 -
long long10进制转16进制代码
char* _10_to_16(long long a, int &amp;len){ char* str = new char[10];// 分配空间 int i = 0; long long temp = 0; while(true){ if(a &lt; 16){// 小于16就直接退出, 不用再进行下去了. str[i++] = a + '0' ; break...原创 2019-02-28 21:32:15 · 6450 阅读 · 0 评论 -
LIS最长公共子序列(动态规划与递归的解法博弈)
动态规划一 最长公共子序列考虑假如有如下两个字符串 求其最长的公共子序列FRAMEFAMILY根据最长公共子序列的定义,显然一眼可以看出最长子串为: FAM那么要怎么么求呢?怎么用代码实现呢?在这里首先分析一下求法。比如给字符串一个序号一个串叫A串(FRAME),一个叫B串(FAMILY)A串:| F | R | A | M ...原创 2018-10-16 20:53:55 · 963 阅读 · 1 评论