- 博客(20)
- 资源 (6)
- 收藏
- 关注
原创 排序之二分排序
package csu.sort;import java.util.Arrays;import java.util.Random;/** * 归并排序 * 基本思想:就是合并两个有序的数组,采用的是分治策略,把一个数组分为若干个子数组; * 子数组的长度为1的时候,则子数组有序,于是可以两两归并 * 时间复杂度最好最坏的结果都是O(n*logn) * 空间复杂度为O(n) *
2015-08-18 11:02:39 433
转载 面试大总结之二:Java搞定面试中的二叉树题目
这是本系列的第二篇,与前一篇 面试大总结之一:Java搞定面试中的链表题目 相比,二叉树的题目可以变化的就更多了。本文还是参考整合重写了《轻松搞定面试中的二叉树题目》和《算法大全(3) 二叉树》两篇大作。本文一个小亮点就是几乎每一道题都用了递归和迭代两种方法写过一遍,因为面试时往往可能会被要求写不擅长的那一种。这一千多行的记录也是我在面试摸索过程中的一个小笔记,备份与此。请大神们轻拍指正。今后
2015-03-17 10:57:47 647
转载 面试大总结之一:Java搞定面试中的链表题目
链表是面试中常出现的一类题目,本文用Java实现了面试中常见的链表相关题目。本文主要参考整合重写了《轻松搞定面试中的链表题目》和 《算法大全(1)单链表》两篇大作。两篇大神的实现分别是C和C#,因为我更喜欢用Java面试,所以用Java重写了所有实现,并附上自己的一些思考注释。算法大全(1)单链表 尚未有一些问题尚未整合进来,很快我会更新本文。接下来还会出关于二叉树的大总结和栈和队列的大总结。
2015-03-17 10:54:21 634
原创 查找之二分查找
import java.util.Arrays;/** * 二分查找:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 * 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 * 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功; * 否则利用中间位置记录将表分成前后两个
2014-04-22 21:32:28 549
原创 字符串匹配之BF算法
package csu.ds;/** * BF算法是普通的模式匹配算法,又称暴力算法,性能和效率很低 * 基本思想:目标串T的第一个字符与模板串M的第一个字符相比较,如果相同,继续比较T的第二个字符和M的第二个字符 * ,若不相同,将T的第一个字符和M的第二个字符相比较,以此类推 * * @author Ricky * */public class BruteForce {
2014-04-01 16:12:28 731
原创 排序之堆排序
package csu.sort;/** * 堆排序 * 堆的定义:堆是一个完全,或近似完全的二叉树,堆顶元素的值大于左右孩子的值,左右孩子也需要满足这个条件; * 按照堆的定义,堆可以是大顶堆(maxHeap),或小顶堆(minHeap); * 一般用数组即可模拟二叉树,对于任意元素i,左孩子为2*i+1,右孩子为2*i+2;父节点为(i-1)/2 * 时间复杂度: 平均:O(nlo
2014-03-23 20:36:33 619
原创 直接插入排序
直接插入排序的基本思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。 1.初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1 2.将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。 3.i
2014-03-17 19:45:09 465
原创 排序之快速排序
快速排序在内部排序方法中效率较高,一般为O(n*logn),当数组有序的时候效率达到最低O(n*n),快速排序采用分治策略。基本思想是:1、先从数组中取出一个数为基准值; 2、将数组中的比基准值大或等于的放到基准值右边,小于基准值的全部放到基准值左边; 3、再对左右区间重复2步骤,知道区间只有一个数。快速排序有递归实现和非递归实现两种方式; 一、递归实现: pack
2014-03-17 16:15:03 574
原创 求最大子数组的和以及输出最大子数组
import java.util.Arrays;/** * 最大子序列 * @author wkp * */public class MaxSub { public static void main(String[] args) { int[] arr={2,4,-7,3,-4,5,2,-1,2,6,-4,8,3}; int[] subArr= new int[10];
2014-03-13 22:35:50 975 2
转载 2014华为上机试题
详细题库:初级题:从考试成绩中划出及格线 10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:(1) 及格线是10的倍数;(2) 保证至少有60%的学生及格;(3) 如果所有的学生都高于60分,则及格线为60分中级题:亮着电灯的盏数 一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始
2014-03-13 10:51:32 1084
原创 排序之选择排序
/*选择排序的思想:需要经过n-1趟比较。 * 第1趟比较:程序将记录定位在第1个数据上,拿第1个数据依次和它后面的每个数据进行比较, * 如果第1个数据大于后面某个数据,就交换它们......依次类推。经过第一趟比较,这组数据中的最小的数据被选出,它被排在第1位。 *第2趟比较:程序将记录定位在第2个数据上,拿第2个数据依次和它后面的每个数据进行比较, * 如果第2个数据大于后面
2014-03-11 19:04:46 478
原创 排序之冒泡排序
/*冒泡排序的思想:需要进行n-1趟比较,每一趟比较将最大的元素排在最后一位 *第一趟比较,依次比较0和1、1和2、2和3 、.....、n-2和n-1处的索引元素,如果第一个数据大于后一个数据,则交换。经过第一趟比较,最大元素排在最后。 *第二趟比较,依次比较0和1、1和2、2和3 、.....、n-3和n-2处的索引元素,如果第一个数据大于后一个数据,则交换。经过第2趟比较,最大元素排
2014-03-11 18:43:26 403
原创 笔试随记(随时更新)
String、StringBuilder、StringBuffer之间的区别三者类都可以表示字符串,其中String类创建的值(字符串)在创建后不能更改,StringBuilder和StringBuffer都是可变字符串序列,而StringBuffer是线程安全(对多线程而言,会采用同步方法)的可变字符串序列,主要操作是append和insert方法;StringBuilder是线程不安全(不
2014-03-10 20:26:32 503
原创 多线程中的继承Thread类和实现Runnable接口的区别
多线程有两种方法来创建:1、继承Thread类,2、通过实现Runnable接口,代码如下:package test;class MyThread extends Thread { private int ticket = 5; @Override public void run() { // TODO Auto-generated me
2014-02-24 20:27:38 1234
转载 stack的理解
学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。 理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。 含义一:数据结构 stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。 在这种数据结构中,数据像积木那样一层层堆起来,后面加入的数
2013-12-10 20:43:08 777
原创 括号匹配问题
判断字符串中的字符匹配,遍历字符串运用switch将“(”、” [ " 、“ { ”的时,压入push栈中,当遇到“ )”、“ ] " 、 ” } “,比较pop弹出的的括号是否相对应“(”、” [ " 、“ { ”。遍历完成发现则匹配,否则不匹配。代码如下:package test;import java.util.Scanner;import java.util.Stack
2013-12-09 16:04:49 553
转载 编程面试的10大算法概念汇总
以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。本文将从Java的角度看问题,包含下面的这些概念:1. 字符串2. 链表3. 树4. 图5. 排序6. 递归 vs. 迭代7. 动态规划8. 位操作9. 概率问题10. 排列组合1. 字符串如果IDE没
2013-12-03 20:03:34 509
原创 递归算法-汉诺塔问题
一直以来对递归讳莫如深,总是不太懂,现在慢慢的从简单的问题开始,解决问题。大二时候刘老师的算法分析学的很烂,记得第一章就有汉诺塔问题的描述。但是似懂非懂。只懂得过程,确不会写出算法 import java.util.Scanner;public class hanoiQues { static int count = 0;// 移动累计次数count初
2013-12-02 21:01:36 844
原创 回文数与回文字符串问题
华为2013校园招聘的上机试题,记得有两道,好忧伤的是当时被第一道试题卡壳了,印象尤深,就是回文数问题,时间过去一年多了,记得题目:给出一个字符串,判断是否是回文字符串? 刚开始的思路是将字符串转为数组n(字符串长度),再根据arr[i]!=arr[n-i-1]。反正是没做出来,可能是第一次参加招聘和上机做题(其实真正原因是基础很薄弱) 最近又碰到这样的题目,以此小记逝去的光
2013-11-30 20:59:24 665
JAVA程序员面试试题精选
2011-01-09
JAVA程序员面试题集合
2011-01-09
C++程序员面试试题分析
2011-01-09
算法分析与设计考试试题及答案
2011-01-09
算法分析与设计试题及答案
2011-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人