— — — —基础算法— — — —
·马克图布·
如果人生真的可以分为几个阶段的话,那么我现在就在感觉自己很普通,并一无是处的那个阶段。
展开
-
排序总结
插入排序1、直接插入O(n2)O(n^2)O(n2) 稳定排序int a[N];int n;void InsertSort(){ for(int i = 1;i < n;++i){ int temp = a[i]; int j = i - 1; for(;j >=0 && temp < a[j];j...原创 2020-01-06 16:06:22 · 129 阅读 · 0 评论 -
快排模板 ,归并模板 及其应用
快速排序:int partition(int arr[],int low,int high){ int pivot = arr[high]; int i = (low - 1); for(int j = low;j <= high - 1; ++j) { if(arr[j] <= pivot)//若从大到小排,改成>=即可...原创 2019-07-26 01:30:44 · 178 阅读 · 0 评论 -
全排列(按字典序)
描述给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列。输入输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。输出输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列...原创 2019-04-25 16:28:57 · 1937 阅读 · 0 评论 -
自然数的拆分
【题目描述】任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。当n=7共14种拆分方法:7=1+1+1+1+1+1+17=1+1+1+1+1+27=1+1+1+1+37=1+1+1+2+27=1+1+1+47=1+1+2+37=1+1+57=1+2+2+27=1+2+47=1+3+37=1+67=2+2+37=2+57=3+4total...原创 2019-04-18 23:08:30 · 780 阅读 · 0 评论 -
组合的输出(搜索与回溯)
【题目描述】排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r≤n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。现要求你用递归的方法输出所有组合。例如n=5,r=3,所有组合为:1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 ...原创 2019-04-18 22:36:55 · 933 阅读 · 0 评论 -
A的B次方Mod P(快速幂应用)
题目描述找到了心仪的小姐姐月月后,华华很高兴的和她聊着天。然而月月的作业很多,不能继续陪华华聊天了。华华为了尽快和月月继续聊天,就提出帮她做一部分作业。月月的其中一项作业是:给定正整数A、B、P,求ABmodPABmodP的值。华华觉得这实在是毫无意义,所以决定写一个程序来做。但是华华并不会写程序,所以这个任务就交给你了。因为月月的作业很多,所以有T组询问。输入描述:第一...原创 2019-03-16 23:35:02 · 2142 阅读 · 1 评论 -
百变斐波那锲以及常用性质(不完善版)
引子:(以下所有代码结果不尽相同,只需使得n++,或n--,即可得到符合数列的数)斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:该数列指的是这样的一列数字:1、1、2、3、5、8、13、21、34、55、89、144、233、377、...原创 2019-02-13 13:49:11 · 579 阅读 · 0 评论 -
关于C 库函数 - sprintf()
我一直主推atoi和itoa函数,可是今天有点尬。itoa没通过OJ编译,无奈之下,搜了一下,发现itoa是非标准函数,推荐使用sprintf函数,以下为百度百科收集的信息。(这个函数抽出时间定要好好参悟,相信在某些题目上定有奇效)函数信息 功能把格式化的数据写入某个字符串缓冲区。 头文件stdio.h 原型int sprintf( c...原创 2019-02-16 22:48:52 · 683 阅读 · 0 评论 -
ISBN码(关于atoi和itoa)
我现在感觉很难受,被一个题弄得死去活来,md,我忍不住想吐槽一下,细节做得真足,我硬生生看着数据把题目A对,也怪我自己(QAQ),没认真审清题目就开始做题。话不多说,题目如下:每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-8...原创 2019-01-27 10:59:14 · 324 阅读 · 1 评论 -
上台阶(基础—>进阶)
基本型、现在小瓜想走上一个一共有n级的台阶,由于小瓜的腿比较短,他一次只能向上走1级或者2级台阶。小瓜想知道他有多少种方法走上这n级台阶,你能帮帮他吗?收起输入一行一个整数n(n<=40),表示一共有n级台阶。输出一行一个整数,表示小瓜上台阶的方案数的结果。输入样例3输出样例3举这个题主要是运用递归算法,适合于数目比较小的基础版上台阶问题,这...原创 2019-01-30 23:13:58 · 1744 阅读 · 0 评论 -
归并排序(理解万岁)
感谢陈老师把归并排序讲的通俗易懂!!! 想信大家看如下代码,会加深对归并排序的理解。#include<bits/stdc++.h>#include<iostream>#include<cstring>#include <algorithm>using namespace std;vo...原创 2019-01-30 10:17:07 · 186 阅读 · 0 评论 -
队列复原.1(桶排序思想)
小瓜现在让1到n这n个整数排成一列,但是他只告诉你每个整数的后面那个数是什么(最后一个整数的后面那个数是0),请你帮忙复原这个队列。 输入第一行一个整数n(n<=100000),表示有n个整数。接下来n行,每行两个数i,j,表示排在整数i后面的那个数是j。输出n行,每行一个整数,表示完整的队列。输入样例41 32 43 24 0输出样例1...原创 2019-02-21 15:00:36 · 881 阅读 · 0 评论 -
吃葡萄(递归)
在房间中G颗葡萄,现在有n个人。这n个人依次进入房间吃葡萄。每个人进去的时候都做如下操作,把葡萄分成n等份,发现还多出一颗,然后吃掉这一颗以及n等份中的一份,然后走出房间。这n个人吃完之后,最后房间里面的葡萄刚好可以分成n等分。问n最大是多少?收起输入多组测试数据。第一行输入一个整数T(1<=T<=200),表示测试数据的数目。接下来T行,每一行一个整数G(1<...原创 2019-02-04 17:00:56 · 855 阅读 · 0 评论 -
分鱼问题(递归)
注:本问题和代码来自公众号:速学c语言。问题描述 A、B、C、D、E这5个人合伙夜间捕鱼,凌晨时都已经疲惫不堪,于是各自在河边的树丛中找地方睡着了。第二天日上三竿时,A第一个醒来,他将鱼平分为5份,把多余的一条扔回河中,然后拿着自己的一份回家去了;B第二个醒来,但不知道A已经拿走了一份鱼,于是他将剩下的鱼平分为5份,扔掉多余的一条,然后只拿走了自己的一份;接着C、D、E依次醒来,也都按...转载 2019-02-04 15:53:36 · 4864 阅读 · 0 评论 -
二分查找(初步)
写一个函数BinarySeach,在包含size个元素的、从小到大排序的int数组a里查找元素 m,如果找到,输出yes,如果找不到,则输出no。要求复杂度O(log(n)) 使用二分查找的前提是有序,即在一个有序的数组中寻找一个数,本文只是重在体现二分查找的思想。#include<iostream>#include <algorithm>usin...原创 2019-02-02 21:41:10 · 286 阅读 · 0 评论