![](https://img-blog.csdnimg.cn/20200714135659575.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
入门算法
正在学习的算法
Nice night
你知道的越多,你不知道的越多。
展开
-
C++字符串和数字的互相转换
“老板认为数字4不吉利,请输出彩票编号不带数字4的彩票”“现有一组电话号码,格式为 “小明:151356161”,要求将所有电话号码进行汇总录入数据库,请输出电话号码”你还在为这类题烦恼吗?解决方案一:遍历数字求商求余,不做过多讲解,给个核心代码int check(int n) { int ver = 1; while (n > 0) { int k = n % 10; if (k == 4) { ver = 0;原创 2020-07-16 19:36:09 · 1812 阅读 · 0 评论 -
C++手动实现全排列
全排列,也就是排列组合对123全排列。123 132 213 231 312 321思路:由1为起始的全排列也就是2,3的全排列,2,3的全排列就是分别以2和3起始的全排列。这是一个递归的过程具体每一步的解析都在代码里//// Created by Night on 2020/7/16.//#include<iostream>#include<algorithm>using namespace std;int a[] = {1, 2, 3, 3};in原创 2020-07-16 18:14:08 · 620 阅读 · 0 评论 -
快速排序思路(Java、C++)
快速排序最优的情况下空间复杂度为:O(logN)最差的情况下空间复杂度为:O(N^2)快速排序的平均时间复杂度是:O(N*logN)思路:将第一个位数设为基数temp,先从最后一个下向左进行和基数的比较,再从第一个下标0向右进行和基数的比较。最终分成两部分,左边的都比基数小,右边的都比基数大,再分别对这两部分进行快排 要排序: 6 3 4 9 2 5 1分别对应下标,,0 1 2 3 4 5 61. 基数为6,a[6]=1比基数小,交换,为:1 3 4 9 2 5 62. 从原创 2020-07-14 18:49:15 · 201 阅读 · 1 评论 -
归并排序思路(C++、Java)
归并排序算法复杂度:最好情况:O(nlogn)最坏情况:O(nlogn)平均情况:O(nlogn)空间复杂度:O(n)缺点:需要另开一个等大数组,消耗空间思路:3 1 5 4 2拆分成3 1 5 和 4 2 两部分再分为3 1 和 5 以及 4 和 2继而比较前半部分为1 3 5,后半部分为2 4定义两个指针指向这两部分,p1和p2,往后移动,比较当前所指元素大小。代码:#include <iostream>using namespace std;int a原创 2020-07-14 17:23:14 · 220 阅读 · 1 评论 -
C/C++的大数加法与阶乘算法
long long 范围: -9223372036854775808~9223372036854775807当我们求取斐波那契数列100位的时候,部分数字会异常显示需要用到大数算法大数加法:思路:两个数字存到数组里,进行翻转,两个数字的每位数字相加,用数组存取得到的每位数字,最后翻转数组进行输出。代码:#include<iostream>#include<algorithm>#include<string>#define ll long long#d原创 2020-07-14 14:39:41 · 514 阅读 · 0 评论