算法与数据结构
tuobana123
从事J2EE开发,熟悉Spring Framework,Hibernate,Mybatis等开源java框架。
展开
-
ACM题目分类
首先推荐大家一些非常简单的题,特别适合没有算法基础的新手做(需要C语言基础)。 1000 1001 1002 1003 1004 1005 1006 1007 1008 1012 1013 1017 1019 1023 1032 1045 1046 1047 1050 1061 1067 1068 1080 1083 1088 1095 1102 1132 1159 1163 1182 1183转载 2009-05-20 16:40:00 · 3611 阅读 · 0 评论 -
java 单向链表实现
链表是一种常用的数据结构,理解了链表的结构和原理,我们也可以使用java来实现一个简易的链表,麻雀虽小五脏俱全,o(^▽^)opackage com.basic.alogrithm;public class BasicLink { public static void main(String[] args) { Link<Integer> tests = new Link<I原创 2016-03-04 14:17:25 · 565 阅读 · 0 评论 -
java 简单链表
java中没有指针的概念,但是有对象的引用,java中链表的实现就是通过对象的引用实现的。下面是一个链表的简单实现class Link { class Element { public Object value = null; public Element nextNode = null; } private Element header = null; pub原创 2013-11-06 17:22:52 · 1095 阅读 · 0 评论 -
java 约瑟夫问题
约瑟夫问题:假设有n个人手拉手围成一圈,顺时针开始报号,报到m的人出圈,然后继续往后报,报到m的人出圈,依次把所有报到m的人都踢出圈,问先后被踢出圈的那些人原来是圈内的几号,以及最后剩下的是几号?算法思路:1)用循环链表,报到m的节点从链表中删除,直到剩下最后一个节点,2)用一个简单数组+模拟成圈实现(下面的实现是基于第2种思路):package com.a原创 2013-12-11 14:16:26 · 871 阅读 · 0 评论 -
java排序 内部排序 交换排序
package com.basic.sort;public class BasicSort { public static void main(String argvs[]) { int test[] = {3,1,2,5,4,3}; maopao m = new maopao(test); m.sort(); m.print(); quik q = new qui原创 2013-08-15 19:40:49 · 1678 阅读 · 0 评论 -
java排序 内部排序 选择排序
package com.basic.sort;public class BasicSort { public static void main(String argvs[]) { int test[] = {3,1,2,5,4,3}; // choose s = new choose(test);// s.sort();// s.print(); heap h原创 2013-08-16 11:22:55 · 819 阅读 · 0 评论 -
java 判断一个数是否为素数(质素)
判断k是否为素数,最基本的方法就是判断2—k的平方根范围里面是否有一个数能被k整除,即k % i == 0是否成立,若成立则不是素数,否则就是素数。下面是基于java的实现。package com.algorithm.prime;public class BasicPrime { public static void main(String argv[]) { for(int原创 2013-12-11 10:44:42 · 16629 阅读 · 1 评论 -
C实现简单单向链表,一次遍历查找倒数第k个节点的值
本题目很简单,思路就是用两个指针,第一个指针先走K步,然后第二个指针在走,这样当第一个指针到底末尾的时候,这时第二个指针则刚好是倒是第k个节点的位置。下面是C代码实现。#include #include struct node{ void* data; struct node* next;};typedef struct node Node;Node* linkIni原创 2013-11-07 11:38:30 · 1639 阅读 · 0 评论 -
java实现 数组中两个元素相加等于指定数的所有组合
package com.algorithm.hash;public class alg1 { public static void main(String argv[]) { int[] array1 = {10,2,7,4,5,6,3,8,9,1}; int[] array2 = {1,2,3,4,5,6,7,8,9,10}; int[] array3 = {1,2,3,4,5原创 2013-11-05 17:07:28 · 13577 阅读 · 2 评论 -
bitmap 在排序中的应用
今天突然发现位运算还可以用于排序(前提是没有重复数字),这里写了一个简单的基于位运算排序算法,比较简单,不过应该有借鉴意义,^_^。package com.basic.bitmap;public class Bitmap { private static final int MAX = 8; private char bit[]; public Bitmap() { t原创 2013-08-22 16:34:16 · 1074 阅读 · 0 评论 -
字符串Hash算法
转载:http://www.cnblogs.com/-clq/archive/2012/05/31/2528153.html/// @brief BKDR Hash Function /// @detail 本 算法由于在Brian Kernighan与Dennis Ritchie的《The C Programming Language》一书被展示而得 名,是一种简单快捷转载 2012-11-27 23:34:03 · 8845 阅读 · 0 评论 -
十道海量数据处理面试题与十个方法大总结
转载:http://kb.cnblogs.com/page/95701/ 第一部分、十道海量数据处理面试题 1、海量日志数据,提取出某日访问百度次数最多的那个IP。 此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。 再详细介绍下此方案转载 2012-11-27 23:27:53 · 836 阅读 · 0 评论 -
各种算法分类
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法: (1原创 2009-06-16 16:28:00 · 700 阅读 · 0 评论 -
java 二叉查找树(搜索树、排序树)实现
二叉查找树,又称二叉搜索树,又称二叉排序树,可以是null树。主要思想如下,如树的左子树非空,则左子树的所有节点值都小于根节点值,若树的右子树非空,则右子树的所有节点值都大于根节点值。下面就基于这个思路来实现代码了,代码只实现了几个简单方法,也参考了网上一些实现代码。class BinarySearchTree<E extends Comparable<E>> { Node<E> root;原创 2016-03-04 15:58:32 · 677 阅读 · 0 评论