计算机算法设计与分析
王小白的博客
这个作者很懒,什么都没留下…
展开
-
算法设计与分析——使用dijkstra算法计算最短路径并且给出路径上的节点序列
算法课的一道作业题:给定一个有向图,求v1到其他各节点的最短路径长度,以及最短路径。要求:对dijkstra算法进行补充,使新算法在找出这些最短路径长度的同时,也能求出路径上的节点序列。输入:一个有向带权图输出的基本形式如下:基本思路:使用dijkstra计算v1节点到其他所有节点的路径长度: 二维数组cost[][]:存放有向带权图的初试状态; 一维数组s[]:bool类型,标记节点是否被选取原创 2017-10-27 01:37:48 · 9413 阅读 · 2 评论 -
小白的秋招记录——机试刷题(华为研发工程师编程题)
1、汽水瓶时间限制:1秒空间限制:32768K有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张...原创 2019-07-02 19:19:49 · 1827 阅读 · 1 评论 -
【Python】获得列表中每个元素出现的次数(最优方法)
周五的时候,leader给我了一个数据分析的小任务,其中第一步就是从数据库里读取代码,然后统计某一列元素出现的次数。说是小任务,其实也不怎么小,大概十亿条数据吧。。。嘤嘤嘤。。。。然后我一看,这个好眼熟,我以前做过呀,先新建一个字典,key对应数据库那一列对应的元素,value存储元素个数,然后对数据库里每个元素进行判断,如果有相同的key,则value+1,如果没有,那么就新增这个key,并...原创 2018-06-24 18:10:00 · 33571 阅读 · 4 评论 -
【Python】用python实现归并排序算法
先放上代码,有空再整理思路def merge(left,right): temp_ans=[] # temp_index=0 i,j=0,0 while i<len(left) and j<len(right): if(left[i]<right[j]): temp_ans.append(left[i]) i原创 2018-03-18 10:35:08 · 1148 阅读 · 0 评论 -
【Python】用python实现插入排序算法
先放代码,有时间再整理思路def insert_sort(alist): for i in range(1,len(alist)): temp=alist[i] j=i-1 while(j>=0 and temp<alist[j]): alist[j+1]=alist[j] j-=1原创 2018-03-18 00:54:49 · 431 阅读 · 0 评论 -
【Python】用python实现二分检索
def bina_search(alist,a): low=0 high=len(alist)-1 while(low<=high): mid=(low+high)//2 if(alist[mid]>a): high=mid-1 elif(alist[mid]<a): low=mi原创 2018-03-17 20:51:47 · 307 阅读 · 0 评论 -
算法设计与分析——棋盘覆盖问题
在一个2^k * 2^k个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。该棋盘为特殊棋盘,蓝色的方格为特殊方格。棋盘覆盖问题是指,要用图2中的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。用分治法设计一个求解棋盘覆盖问题的算法,并且用c++语言实现。思路分析: 第一眼看到这个题目,我是蒙的,除了暴力原创 2017-11-01 14:34:40 · 33728 阅读 · 0 评论 -
算法设计与分析——动态规划方法求解序列的连续最大子段
问题描述: 输入:整数序列 a1, a2 … an 输出:序列的一个连续子段,使该子段和最大 ,输出该连续子段 当所有整数都为负数时,定义最大子段和为0 语言:c++刚刚写了一个使用动态规划求最大子段和的算法(眼神不好,没读懂题) 求最大字段和的思路及代码链接: http://blog.csdn.net/sunshine__0411/article/details/78484850原创 2017-11-09 01:29:59 · 1494 阅读 · 0 评论 -
算法设计与分析——动态规划方法求解序列的连续最大子段和
当 当 当 当 ~~ 没错,又是算法课作业 (╯︵╰)问题描述: 输入:整数序列 a1, a2 … an 输出:序列的一个连续子段,使该子段和最大 当所有整数都为负数时,定义最大子段和为0 语言:c++若要输出连续子段,见链接(眼神不好,交作业才读懂题): http://blog.csdn.net/sunshine__0411/article/details/78484960关于动态规划原创 2017-11-09 00:20:50 · 3881 阅读 · 0 评论 -
算法设计与分析——删数问题
-通过键盘输入一个高精度的正整数n(n的有效位数<=240),去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。 -输入:n,s -输出:最后剩下的最小数 -输入示例: 178543 4 -输出示例: 13思路: 使用贪心算法,从左到右依次遍历,找到第一次出现的a(k)>a(k+1)原创 2017-10-27 01:59:33 · 2157 阅读 · 0 评论 -
小白的秋招记录——机试编程题(当当)
1、解析ip地址给出一个字符串,仅包含整数,解析字符串,给出所有有效的ip地址组合输入描述: 字符串输出描述: 有效的ip地址字符串,多个字符串间用“ , ”分割样例输入: 25525511135样例输出: 225.225.11.135,225.225.111.35备注: 字符串长度 7~15思路:递归代码:import sysfrom copy im...原创 2019-09-04 00:38:06 · 257 阅读 · 0 评论