
Java程序员面试宝典
Javaxiaobaismc
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
堆栈面试例题
题目: 实现一个栈操作,将1~12月的英文单词压入栈中,然后再将其取出,使用Java代码实现。 答案: package book; import java.util.*; public class JiOu { static String[] months = { "January", "February", "March", "April", "May", ".原创 2018-10-29 15:55:06 · 889 阅读 · 0 评论 -
二分排序
基本思想: 二分法插入排序是在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,如果小,则对前半再进行折半,否则对后半进行折半,直到left>right,然后再把第i个元素前1位与目标位置之间的所有元素后移,再把第i个元素放在目标位置上。 二分排序中,关键字的比较次数由于采用了折半查找而减少,数量级为O(n log n),但元素移动次数仍为O(n^2),所以其时...原创 2018-10-31 10:25:37 · 335 阅读 · 0 评论 -
快速排序
基本思想: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 快速排序是一种不稳定的排序方法,最差情况下其时间复杂度为O(n²),最好情况下为O(n logn),所以平均时间复杂度为O(n lg n/lg 2); 代码: package ...原创 2018-11-01 08:59:08 · 306 阅读 · 0 评论 -
选择排序
选择排序是一种简单直观的排序算法。它的工作原理是: 首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,放到排序序列的末尾。以此类推,直到所有元素排序完毕。 选择排序的交换操作介于0和n-1次之间;比较操作为n(n-1)/2之间;赋值操作介于0和3(n-1)次之间;其平均复杂度为O(n²)。 代码如下: package book; im...原创 2018-10-29 21:15:37 · 271 阅读 · 0 评论 -
数组支配者问题
题目: 一个数组中,“支配者”是在数组中出现频率超过一半的整数,例如【3,4,3,2,-1,3,3,3】,其中数值“3”出现超过5次,5除以8大于0.5。所以“3”是一个支配者。写一个函数,在整数数组中找出支配者是多少,如果一个数组中没有支配者则返回-1。 解析: 本题可以先对数组做一个排序,然后统计相同数的值,如果相同数的数量超过了总数的一半,则为支配者。代码如下: packag...原创 2018-10-30 10:32:43 · 491 阅读 · 0 评论 -
筛选法查找100以内的素数
解析: 筛选法:是指从小到大筛去一个已知素数的所有倍数。例如:根据2,我们筛选去4,6,8,....,98,100等数,然后根据3,我们可以筛选9,15,...99等数(注意此时6、12等数早就被筛去了),由于4被筛去了,下一个用于筛选的素数是5,以此类推,最后剩余的就是100以内的素数。 首先定义一个int类型的数组int[] a,初始化整个数组,全部初始化为1,第二步双重循环,从2开始,所...原创 2018-10-27 21:32:12 · 1686 阅读 · 0 评论 -
?:运算符例题
题目1: package book; import java.util.*; public class JiOu{ public static void main(String[] args) { char x = 'x'; int i = 10; System.out.println(false ? i : x); System.out.println(false ? 10...原创 2018-10-26 15:52:33 · 567 阅读 · 0 评论