![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
炸鸡叔老白
贵阳热爱编程的小菜鸟一枚。
展开
-
贪心法之背包问题
文章目录贪心法之背包问题一、问题描述二、代码实现2.打印结果下一篇贪心法之背包问题一、问题描述果园里正在举办一场装背包问题的比赛,规定每一个参赛者有一个背包,承重为20kg,参赛者是熊猫,山羊,梅花鹿,给定四种水果,对应的重量和价值为如下所示,规则是:水果可以装一部分,装入的总重量不能超过背包重量,背包中装入的水果总价值最高者获胜。物品名称 重量(kg) 价值(元)苹果 15 300香蕉 18 180橘原创 2021-11-21 17:33:06 · 581 阅读 · 0 评论 -
贪心法(python)
文章目录贪心法一、基本概念二、解题步骤1.从问题的某个简单的初始解出发2.当可以求解目标前进一步时,就采用局部最优策略,得到一个局部最优解,缩小问题的规模。3.最后将所有局部最优解合并起来,得到问题的最终解。下一篇贪心法一、基本概念贪心法是一种在每一步选择中都采取当前状态下最好的选择,从而希望导致结果是最好的算法。贪心法在最优求解的过程中采用的是局部最优策略,力求把问题规模缩小,从而再把每一步的结果合并起来得到全局最优解。二、解题步骤1.从问题的某个简单的初始解出发2.当可以求解目标前进一步原创 2021-11-20 21:43:49 · 704 阅读 · 0 评论 -
分治法之二分查找
文章目录二分查找一、问题描述二、代码实现2.打印结果下一篇二分查找一、问题描述描述:利用二分查找法在数组array中查找元素k成功则返回该元素下标,否则返回-1注:数组array是升序数组(排序好的)二、代码实现# -*- coding: utf-8 -*-"""Created on Fri Nov 19 12:45:18 2021@author: lenovo描述:利用二分查找法在数组array中查找元素k成功则返回该元素下标,否则返回-1注:数组array是升序数组(原创 2021-11-19 13:04:55 · 430 阅读 · 0 评论 -
分治法之二路归并排序
文章目录二路归并排序一、大概思路二、代码实现2.读入数据下一篇二路归并排序一、大概思路二、代码实现# -*- coding: utf-8 -*-"""Created on Tue Nov 16 09:34:33 2021@author: lenovo转载:https://blog.csdn.net/u010339879/article/details/78251211?ops_request_misc=%257B%2522request%255Fid%2522%253A%252216原创 2021-11-19 12:44:17 · 735 阅读 · 0 评论 -
分治法子快速排序
文章目录快速排序一、大概思路二、代码实现2.打印结果下一篇快速排序一、大概思路第一趟排序过程二、代码实现# -*- coding: utf-8 -*-"""Created on Sun Nov 14 15:27:01 2021@author: lenovo快速排序算法实现"""def partition(array,i,j): temp = array[i] while i != j: while j &原创 2021-11-16 09:30:45 · 730 阅读 · 0 评论 -
分治法之汉诺塔问题
文章目录汉诺塔问题一、问题描述二、代码实现2.打印结果下一篇汉诺塔问题一、问题描述汉诺塔问题:有三个塔座A,B,C,开始时,塔座A上一共有n个盘子,这些盘子自上而下,由小到大叠在一起,上面的盘子总是比下面的小。对盘子从小到大进行编号:1,2,3,。。。,n。现在要求将盘子移到塔座B上,仍然按同样的次序摆放。在移动盘子时,遵顼以下原则:1,每次只能移动一共盘子2,任何时候都不能将大盘子压到小盘子3,可以将盘子移到A,B,C,的任一盘子注:本例中使用列表A,B,C代表塔座二、代码实现原创 2021-11-13 18:11:02 · 205 阅读 · 0 评论 -
分治法之斐波拉契数列
文章目录斐波拉契数列一、问题描述二、代码实现2.打印结果下一篇斐波拉契数列一、问题描述假设一对出生兔子要一个月才到成熟,而一堆成熟兔子每个月会生一对小兔子,那么从一对初生兔子开始假设所有兔子不死,请计算n个月后兔子对数?二、代码实现代码如下:# -*- coding: utf-8 -*-"""Created on Sat Nov 13 12:20:34 2021@author: lenovo问题描述;假设一对出生兔子要一个月才到成熟,而一堆成熟兔子每个月会生一对小兔子,那么从一原创 2021-11-13 12:31:38 · 270 阅读 · 0 评论 -
分治法(python)
文章目录分治法一、分治法概述二、分治法基本思想1.分2.治3.合三,分治法特征下一篇分治法一、分治法概述探索分而治之一种实用的递归解决方法,称为分治法二、分治法基本思想1.分将原问题逐步分解为规模更小的子问题,子问题要与原问题的解法一致。2.治将分解出的这些子问题逐个解决,若子问题规模小且容易解决,则直接求解,否则递归解决各个子问题。3.合 将已经得出解的子问题合并,最终得出原问题的解三,分治法特征1,问题规模小到一定程度后能够容易求出解2,问题体能够分解为若干规模较小的与原问原创 2021-11-13 12:19:01 · 1100 阅读 · 0 评论 -
蛮力法之0-1背包问题
文章目录0-1背包问题一、问题描述?二、代码实现2.打印结果下一篇0-1背包问题一、问题描述?问题描述:给定一个容量为W的背包,现有n件物品,每一种物品仅有一件,重量分别为w1,w2,w3,。。。,wn价值分别为v1,v2,v3,。。。,vn,现在从这n件物品中选择一部分放入背包,物品不可以分割,要么放要么不放,要求放入物品具有最大价值,且总重量不能超过背包的容量W,可以用0表示不放入,1表示放入二、代码实现代码如下# -*- coding: utf-8 -*-"""Create原创 2021-11-12 16:20:35 · 643 阅读 · 0 评论 -
串匹配问题
文章目录串匹配问题一、问题描述二、代码实现2.打印结果下一篇串匹配问题一、问题描述给定两个字符串S,T在主串S中查找模式串T的过程称为模式匹配,如果T是S的子串,则返回T在S中首次出现的位置,否则返回-1二、代码实现代码如下# -*- coding: utf-8 -*-"""Created on Fri Nov 12 11:09:55 2021@author: lenovo问题描述:给定两个字符串S,T在主串S中查找模式串T的过程称为模式匹配,如果T是S的子串,则返回T在S中原创 2021-11-12 14:34:10 · 127 阅读 · 0 评论 -
蛮力法之狱吏问题
文章目录狱吏问题一、问题描述二、代码实现2.打印结果下一篇狱吏问题一、问题描述狱吏问题问题描述:国王要对囚犯进行大赦,他通过以下方法来挑选要释放的犯人,假设有一排n间牢房,国王让一个狱吏从牢房走过,每经过一次就按照一定规则转到一次门锁,门锁每转动一次,原来锁着的门就会打开,而原来打开的门机会被锁上,当狱吏经过n次后,如果门锁是打开的,则犯人就会被释放,反之就会被继续关押狱吏开锁规则:第K次经过牢房,从第K间开始转动,每隔K-1间牢房转动一次二、代码实现代码如下# -*- codi原创 2021-11-12 11:05:14 · 804 阅读 · 0 评论 -
蛮力法之解数字谜
文章目录解数字谜一、问题描述二、代码实现2.打印结果下一篇解数字谜一、问题描述找出一个满足下列竖式的五位数,输出该五位数及相应的六位数的结果ABCABx A---------DDDDDD其中A,B,C,D是0-9的任意数,二、代码实现代码如下:# -*- coding: utf-8 -*-"""Created on Thu Nov 11 21:52:44 2021@author: lenovo蛮力法之解数字谜问题描述:找出一个满足下列竖式的五位数,输出该五位数及相原创 2021-11-12 10:06:14 · 677 阅读 · 0 评论 -
蛮力法之直接插入排序
文章目录直接插入排序一、代码实现二、打印结果下一篇直接插入排序一、代码实现# -*- coding: utf-8 -*-"""Created on Wed Nov 10 10:03:36 2021@author: lenovo直接插入排序"""def insert_sort(array): if len(array) == 0 or len(array) == 1: return -1 for i in range(len(ar原创 2021-11-10 10:31:10 · 90 阅读 · 0 评论 -
蛮力法之选择排序
文章目录选择排序一、代码实现二、打印结果下一篇选择排序一、代码实现# -*- coding: utf-8 -*-"""Created on Wed Nov 10 09:53:43 2021@author: lenovo直接选择排序默认列表第一个元素为最小值"""def select_sort(array): if len(array) == 0 or len(array) == 1: return -1 for i in ran原创 2021-11-10 10:03:11 · 180 阅读 · 0 评论 -
蛮力法之冒泡排序
文章目录冒泡排序一、代码实现二、打印结果下一篇冒泡排序一、代码实现# -*- coding: utf-8 -*-"""Created on Wed Nov 10 09:27:02 2021@author: lenovo冒泡排序"""def bubble_sort(array): if(len(array) == 0 or len(array) ==1): return -1 for i in range(len(array)):原创 2021-11-10 09:43:07 · 101 阅读 · 0 评论 -
蛮力法之顺序查找
文章目录顺序查找一、定义二、代码实现2.打印结果下一篇顺序查找一、定义顺序查找也叫简单那个查找,查找时使用蛮力策略,从数据序列的第一个数据元素开始,逐个开始,逐个与待查找的关键字k进行比较,如果两者相等,则返回该元素的下标,否则返回-1二、代码实现# -*- coding: utf-8 -*-"""Created on Tue Nov 9 11:07:32 2021@author: lenovo蛮力法之顺序查找在给定数组中查找数据元素,并返回该元素下标,若查找失败则返回0"""原创 2021-11-09 11:35:21 · 460 阅读 · 0 评论 -
蛮力法之百鸡百钱问题
文章目录百鸡百钱一、解析二、代码实现三,打印结果下一篇百鸡百钱鸡翁一:值钱五,鸡母一:值钱三,鸡雏三:值钱一,百钱买百鸡,问翁,母,雏各几何?一、解析解析:令翁=x,母=y,雏=z(且z必为3的倍数),则:5x+3y+z/3 = 100(钱)x+y+z = 100(只)二、代码实现基于python3.8的Spyder:# -*- coding: utf-8 -*-"""Created on Tue Nov 9 09:48:57 2021@author: lenovo蛮力法:原创 2021-11-09 11:03:23 · 976 阅读 · 0 评论 -
蛮力法(python)
文章目录蛮力法一、别名二、基本思想1.引入库2.特点总结下一篇蛮力法作为算法入门级别的算法,蛮力法,掌握好蛮力法,并对之有兴趣,可激发对算法的乐趣一、别名蛮力法也叫暴力法,穷举法二、基本思想1.引入库直接基于问题的描述和定义,尝试解决该问题的所有可能解,逐一测试,,如果不行,就尝试下一种解,直到找到所有可行解为止。2.特点简单而直接,其中“力”指的是借助计算机的计算能力。适应性强,快速,容易实现总结蛮力法不能算是最好的算法,一般来说高效的算法很少出自蛮力法,但他仍然是一种有用的原创 2021-11-09 10:54:11 · 1221 阅读 · 0 评论