数据结构和算法
lvwei1990
这个作者很懒,什么都没留下…
展开
-
JAVA在ACM/各类在线笔试题中的使用
Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特点: (1) 最明显的好处是,学会Java,可以参加Java Challenge (2) 对于熟悉C/C++的程序员来说,Java 并不难学,找本书,一两周业余时间就可以搞定了。当然,这里只是指一般编程,想熟悉所有的Java库还是需要些时间的。事实上,Java 只相当于C++的一个改进转载 2015-08-11 15:27:04 · 2631 阅读 · 0 评论 -
JAVA实现快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。代码实现1:public class file { publi原创 2015-07-18 19:26:16 · 355 阅读 · 0 评论 -
JAVA实现二分查找
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上原创 2015-07-20 21:34:59 · 2134 阅读 · 0 评论 -
JAVA实现归并排序
归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有原创 2015-07-21 12:03:35 · 501 阅读 · 0 评论 -
(剑指offer)JAVA实现
题1: 二维数组中的查找 题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 代码实现:public class Solution { public boolean Find(int [][] array,int target) { if(array原创 2015-08-16 17:51:19 · 388 阅读 · 0 评论 -
使用递归和非递归方式反转单向链表
问题: 给一个单向链表,把它从头到尾反转过来。比如: a -> b -> c ->d 反过来就是 d -> c -> b -> a 。 分析: 假设每一个node的结构是: [java] view plaincopy class Node { char value; Node next; }转载 2015-09-27 17:39:52 · 522 阅读 · 0 评论 -
打印两个有序链表的公共部分
打印两个有序列表的公共部分import java.util.Stack;public class PrintPublicNode { public static void main(String[] args) { Node head1 = new Node(1); Node head2 = new Node(3); Node node1 =原创 2015-09-27 17:06:09 · 1364 阅读 · 1 评论 -
实现一个栈,除了push和pop操作,还要实现min函数以返回栈中的最小值,
实现一个栈,除了push和pop操作,还要实现min函数以返回栈中的最小值。 push,pop和min函数的时间复杂度都为O(1)。 import java.util.Stack;public class MinStack { public static void main(String[] args) { MinStack mStack = new MinStack(ne原创 2015-09-27 15:48:41 · 1181 阅读 · 0 评论 -
用两个栈来实现一个队列,完成队列的add和poll、peek操作。
题目描述: 用两个栈来实现一个队列,完成队列的add和poll、peek操作。 队列中的元素为int类型。 import java.util.Stack;public class TwoStacksQueue { public static void main(String[] args) { TwoStacksQueue mQueue = new TwoStacksQue原创 2015-09-27 16:16:34 · 3685 阅读 · 0 评论