算法入门学习
一只从零开始学习的小蜗牛
作为一个学计算机的妹子,以前对于程序总是得过且过,然而现在,面对着新的环境,周围大神环绕,作为一个小弱,我打算从头学起。虽然刚开始的时候有些困难,但是,我期待未来属于我的美好~
展开
-
算法学习:归并排序
之前看见一篇微博说的特别好,归并排序可以分开来想,首先是递归,递归到区间只剩下一个元素了,这个时候开始合并。说起来这个思想很容易,但是我还是想了好多遍,虽然程序写出来了,但是我觉得自己对于其内涵理解的并不是很深刻,需要进一步探索。感觉递归真的很神奇,把复杂的问题简单化。算法伪代码参照陈玉福老师的讲义,代码如下:/*归并排序 */#include<iostream>using namespac原创 2015-12-12 21:32:08 · 307 阅读 · 0 评论 -
算法学习:子集和数问题求解
子集和数问题老师课堂上讲回溯法的第二个例子就是子集和数,昨晚上实现了八皇后,今天想按照同样的思路来写一下子集和数。写了两个来小时,发现如果不用递归没有办法表示回溯(都怪我内力太过薄弱,找不到方法。。)可是我看课件的时候,又觉得递归根本没有办法表达出回溯的思想。但是后来写着写成程序,进行不下去的时候,我耐着性子,一步一步写下了递归调用函数的过程,搞明白了算法是属于回溯求解的原因,在这里特别想要感谢一下原创 2015-12-19 13:35:56 · 4195 阅读 · 0 评论 -
算法学习:回溯解决4皇后问题
回溯解4皇后问题说实话,到现在对于写代码我还是心里挺害怕的,总觉得自己不行。。。但是我也要坚持下去,没准儿以后就行了呢,哈哈 今天晚上在图书馆复习回溯,老师课件上面第一个就是4皇后问题,我就想着用程序实现一下~~ 无从下手,不知道该怎么写,参考了 http://blog.csdn.net/yui/article/details/5946928 写出了自己的代码,写完之原创 2015-12-18 23:29:20 · 7919 阅读 · 1 评论 -
算法竞赛入门经典习题解答(2)
/*2-1位数*/#include<stdio.h>#include<time.h>#define LOCALint main(){ #ifdef LOCAL freopen("data.in","r",stdin); freopen("data.out","w",stdout); #endif int n,count=0; scanf("%原创 2016-01-03 12:04:36 · 411 阅读 · 0 评论 -
算法学习:01背包(动规)
算法学习:01背包贪心之后来动规啦~看《算法导论》感觉还是不那么清楚,还是得自己动手才行~真正写的时候发现还是没有真正理解动规的自底向上的求解方法,又看了几篇博文,才初步了解了01背包的真正的执行过程。 必须推荐一下参考的文章,也记录一下,以便日后进一步学习: http://blog.csdn.net/sj13051180/article/details/6687674 http://blog原创 2015-12-17 20:03:34 · 727 阅读 · 0 评论 -
算法学习:贪心求部分背包(使用结构体来求解)
贪心求部分背包(结构体使用)前几天写的背包在按照单位质量价值进行排序的时候,得把质量和价值也一起排了,觉得那个方法笨笨哒,今天睡醒了午觉突然想起结构体应该能解决这个问题,正好也学学结构体~~然后新的代码就出炉啦~ 当当当~ /*贪心解部分背包问题用到结构体 */#include<iostream>#define N 3using namespace std;struct K原创 2015-12-17 15:59:16 · 732 阅读 · 0 评论 -
算法竞赛入门经典习题解答(1)
1.5.6上机练习/*1-1求平均数*/#include<stdio.h>int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); double avg = (double)(a+b+c)/3; printf("%.3lf\n",avg); return 0;}/*1-2温度*/#include<stdio.h原创 2016-01-01 16:00:15 · 630 阅读 · 0 评论 -
算法学习:图的宽度优先遍历(BFS)
图的宽度优先遍历早就学过宽度优先遍历,也自以为会了,今天一写程序才知道自己之前的理解有很多不对的地方,这里就不详细说了。宽度优先算法思想:从一个点开始,检查与这个点相连的点,如果没有被访问过,则放到待访问队列中,否则跳过。直到待访问队列为空。C++中队列的使用: 头文件包含<queue> 几个本文用到的操作:push(i):将i放到队列中,入队pop(i):将点i从队列中删除q.front(原创 2015-12-13 11:00:56 · 2927 阅读 · 0 评论 -
算法学习:图的深度优先遍历(DFS)
图的深度优先遍历采用邻接矩阵表示图的方法,递归实现。 栈的使用:头文件:<stack>s.empty():栈空则返回true,否则返回falses.top():返回栈顶元素,不删除该元素s.push():压栈s.pop():删除栈顶元素,无返回值使用栈的时候参考了以下文章: http://blog.csdn.net/zhy_cheng/article/details/8090346 下原创 2015-12-13 11:42:37 · 870 阅读 · 1 评论 -
算法学习:贪心解部分背包问题
部分背包(贪心)今天复习贪心,看老师的讲义关于贪心的正确性的证明,直接把我给看傻了,先写个代码解一下题好啦~~ 感觉自己写的代码笨笨的,应该有更好的方法,以后慢慢研究,先把这个最初级的记录下来: /*部分背包问题贪心策略求解 */#include<iostream>#define N 3//背包个数#define M 20//背包最大承载重量 using namespace原创 2015-12-13 22:13:25 · 831 阅读 · 0 评论 -
算法学习:快速排序
算法学习:快速排序 快速排序使用的是递归的思想,不断的用划分元素将数组分成以划分元素为分界的两个部分,递归求解。初学算法,不明白的时候就用一个例子,不断的写下程序执行的过程,一点一点去理解算法的含义。下面是自己根据陈玉福老师的讲义写的代码:#include<iostream>using namespace std;void swap(int &a,int &b){ int原创 2015-12-12 21:12:07 · 338 阅读 · 0 评论 -
算法学习:找到数组中的第k小元素
问题描述: 给出数组的起点序号和终点序号,找出这个数组序列中第k小的元素。问题来自陈玉福老师的讲义,代码如下:#include<iostream>using namespace std;int Partion(int p,int q, int *num){ int i = p + 1; int j = q; while(i <= j)//**修改地方 {原创 2015-12-12 23:22:24 · 675 阅读 · 0 评论 -
分数统计-整数
这几天被机器学习的复习折腾的死去活来,今儿是在坚持不下去了,回来写写代码,发现竟然完全没有思路了,哼,这才几天没写啊~写了个短的~/*3-1 int*/#include<stdio.h>#include<string.h>#define MAX 101+10int score[MAX]; int main(){ freopen("data.in","r",stdin);原创 2016-01-07 23:20:58 · 523 阅读 · 0 评论