数据结构与算法
南瓜灯cc
减法即加法
展开
-
java中双向链表的实现
双链表的原理图形如下: 其java实现的代码:/** * 双向链表 */public class MyLinkList { private Node first;// 指向第一个结点 private Node last; // 指向最后的一个结点 private int size = 0;// 链表中结点的个数 public int getSize() {原创 2016-10-16 00:32:02 · 529 阅读 · 0 评论 -
欧几里得算法求n个数据的最大公约数
我们知道,欧几里得算法可以简单的看作是——求p,q的最大公约数可以这样处理,即p除以q的余数r,则p,q的最大公约数为q与r的最大公约数,然后递归。若规定当一个数p为0的时候, 则最大的公约数为q.两个数的简单求公约数如下算法:int gcd(int p,int q){ if(p==0) return q; int r=p%q; return gcd(q,r)原创 2016-06-29 17:03:56 · 935 阅读 · 0 评论 -
oj输入格式的要求
对于oj,其对于输入的格式有严格的要求,有时候即使算法正确,格式不对一样不能AC。比如输出的行尾有没有空格行与行之间有没有空行输出数据之间有没有空格,有几个空格以及数据的对齐方式目前用到的是c++提交,觉得c++对于格式的控制感觉比较繁琐,在一些格式上比较习惯c的格式比如左对齐,每个数字占三个制表符原创 2016-05-10 00:16:01 · 2254 阅读 · 0 评论 -
五子棋算法判断输赢
五子棋相信大部分人都玩过,至少应该听说过。(五子棋源码)简述一下规则:当在棋盘的横行或竖行或斜行(左斜与右斜)有五个及以上连续的棋子的时候,则为赢。分析一下五子棋的算法,当下一个棋子的时候(对应相应的棋盘应该有一个坐标),应该判断下的棋子的横行,横行或竖行或斜行(左斜与右斜)是否满足连续棋子的个数大于等于5个,每次下一个棋子的时候都应该有所判断,每次都应该对4个大的方向(横行,竖行,左斜,...原创 2016-07-06 23:13:22 · 33266 阅读 · 8 评论 -
二分查找之Java实现
非递归与递归两种方法实现:/** * 二分查找:非递归的方法 * 缺点:有序数组中含有多个待查找的数值的时候,这种方法只能显示一个 * @param src //带查找的有序数组 * @param des //带查找的数值 * @return //查找数值的下标,没有查找到返回-1 */ public int bina原创 2017-08-18 13:09:49 · 247 阅读 · 0 评论 -
排序算法之快速排序
快速排序每趟排序的结果是:在选取的基准值得左边全部比其小,而右边都比其大。 下面的采用快速排序第一遍的演示: 其代码(Java)如下:import java.util.Arrays;/** * 快速排序 * * @author sg */public class TestQuickSort { public static void main(String[] args)原创 2017-09-30 15:27:17 · 424 阅读 · 0 评论