算法
包含一些基本算法问题的思考
萌神7号
学习
展开
-
数据结构问题003(巧妙枚举)
熄灯问题题目描述:问题解答(巧妙枚举):如果暴力枚举,每个灯2中状态,那么30个灯是2^30次方。如果采用巧妙枚举:第2行能全灭第1行,第3行能全灭第2行,第4行能全灭第3行,第5行能全灭第4行,那第5行没熄灭完咋整?这个时候要想到第1行还没按下,然后枚举第一行2^6种可能,按上述操作,那么总存在一种,使第5行恰好熄灭吧,假设第1行2^6次无论怎么按都不能使第5行全部熄灭,那么就不存在按法使所有的灯熄灭。...原创 2021-04-25 17:30:25 · 162 阅读 · 0 评论 -
数据结构问题002
百钱买百鸡问题题目描述:100元钱买100只鸡,母鸡每只5元,公鸡每只3元,小鸡3只1元,问共可以买多少只母鸡、多少只公鸡、多少只小鸡?题目分析:求解:设母鸡、公鸡、小鸡各为x, y, z只。则有:x + y + z = 1005x + 3y + z/3 = 100只需要解出本方程就可以得到答案。方法一:三重循环(O(n3O(n^{3}O(n3)复杂度)方法二:二重循环+判断(O(n2O(n^{2}O(n2)复杂度)方法三:约束条件优化二重循环(O(n2O(n^{2}O(n2)复杂度)原创 2021-04-25 17:00:53 · 194 阅读 · 0 评论 -
数据结构问题001
抽签问题方案1:暴力法(O(n4O(n^{4}O(n4)复杂度)上面是一层有一层循环,嵌套了4层for循环,复杂度是O(n4)O(n^{4})O(n4).方案2:二分查找初步优化(O(n3lognO(n^{3}lognO(n3logn)复杂度)在最里面一层for循环,加一个二分查找做判断可以降低时间复杂度。方案3:枚举循环二分查找(O(n2lognO(n^{2}lognO(n2logn)复杂度)具体代码如下所示:void slove(){ for(int c=0;c<n;c++原创 2021-04-25 16:49:47 · 141 阅读 · 0 评论 -
JavaScript_基本排序算法
牛客网编程初学者入门训练题解JavaScript版本JavaScript_基本排序算法1.冒泡排序2.选择排序3.快速排序4.归并排序 空间复杂度o(n)5.js内置排序sort()JavaScript_基本排序算法1.冒泡排序时间换空间 空间复杂度是o(1) 时间复杂度是o(n^2)最坏n2,最好n,平均n2,稳定排序算法,比较简单使用范围:n比较小的时候缺点:复杂度过大function bubble(arr){ for(var i=0;i<arr.length;i++){ fo原创 2020-08-25 10:01:40 · 131 阅读 · 0 评论