java算法
我是奥特man
每天都有新收获
展开
-
活动安排
问题描述:设n个活动使用同一会场,其开始时间分别为数组start[]的集合,结束时间分别为f[],问如何安排使得会场的利用率最高(选出会场对活动的最大相容子集合) 分析:贪心算法求解,可将所有活动按结束时间早晚排序,先安排第一个活动,将其放进会场,然后对下一个活动的开始时间和前一个时间的结束时间进行比较,若start[i]>f[i+1] 则此活动可以放进会场,然后一次往下走。package tan原创 2016-07-02 09:17:45 · 405 阅读 · 0 评论 -
java中单链表的操作
1. 1.1 问题描述: 单链表删除链表中的一个已知节点,要求:时间复杂度O(1) 1.2 解决描述: 假如删除的节点为del,其下一个节点为del.next 将del.next的值给del,删除del 1.3 需要考虑: <1>当链表的长度为1时,返回null; <2>当del没有下一个节点时,即要删除的节点为尾节点,需要依次遍历找到其前驱节点,然后删除。 1.4 代码:pack原创 2017-09-03 20:38:58 · 762 阅读 · 0 评论 -
二叉树的各个考点
1.判断a树是不是b树的子树package 树;import java.util.ArrayList;import com.java.util.TreeNode;/** * @author wangpei * @version 创建时间:2017年5月21日 下午2:47:33 判断a树是不是b树的子树 */public class 判断a树是不是b树的子树 { static Arr原创 2017-05-22 19:46:23 · 821 阅读 · 0 评论 -
java中的String转int需要注意的问题
1。null,”“,(空,空串) 2。满足:首字符为+,-,数字, 不满足:其它的例如字母,空格串 3。溢出(先用long获取,若不满足,则返回错误) 具体代码:package StringExercise;/** * @author wangpei * @version 创建时间:2017年3月24日 上午12:16:50 类说明 */public class StringToIn原创 2017-03-24 01:10:24 · 2910 阅读 · 0 评论 -
两个链表的第一个公共节点
package Link; /** * @author wangpei * @version *创建时间:2017年3月24日 上午1:22:33 * 求两个链表的第一个公共子节点 * 对于链表1:a->b->c->n->p 2:v->k->n->p * 第一个公共子节点就是两个链表第一次相交的点 n * 思路:1.求链表1,2的长度len1,len2 * 2.对于长的链表原创 2017-03-24 02:05:27 · 283 阅读 · 0 评论 -
排序之交换类排序
1.冒泡排序package Sort; /** * @author wangpei * @version *创建时间:2017年3月28日 下午8:28:00 * 冒泡排序 * 思路:依次两两比较,按顺序判断是否交换位置,经过一次冒泡,最后一个元素,肯定为最大值。 * 在依次进行前n-1个元素的比较交换。 *///稳定排序。最小O(n) 平均o(n*n)public cl原创 2017-03-28 20:43:55 · 225 阅读 · 0 评论 -
排序之插入类排序
1。直接插入排序package Sort; /** * @author wangpei * @version *创建时间:2017年3月28日 下午7:30:37 * 插入排序中的直接插入排序 * 思路:对于r[i],其r[1]-r[i-1]位为有序的,r[i]插入到该有序序列中, * 再依次向下,比较r[i+1]...... *///适用于序列基本有序的情况。最好情况比较原创 2017-03-28 20:27:16 · 276 阅读 · 0 评论 -
理解堆排序
堆排序满足条件(不稳定的排序,o(nlog2^n)): 堆是满足下列性质的数列{r1,r2,r3,r4,r5….rn}: 小项堆 ri < r2i / ri < r2i + 1 大项堆 ri > r2i / ri > r2i + 1 堆排序的思想(大项堆):先建立大项堆,选择关键字最大的序列,与序列中最后一个记录交换,然后再将最后一个元素剪掉,调整为不算最后一个元素的大项堆,再选择前n-原创 2017-03-12 11:23:48 · 542 阅读 · 0 评论 -
算法题(1)
1,已知一个二维数组从左到右递增,从上到下递增,求数target是否在数组中。 (1)o(m*n) 依次遍历查找出来。package day01;/** * @author wangpei * @version 创建时间:2017年1月17日 下午7:48:12 进行序列化 */public class test { public boolean Find(int target,原创 2017-01-17 21:37:24 · 226 阅读 · 0 评论 -
贪心算法-最优装载
代码:package tanxinsuanfa;public class zuiyouzhuangzai { public static void main(String[] args) { int []w={20,40,40}; int c=80; int x[]=new int[w.length]; zhua原创 2016-07-02 10:00:41 · 563 阅读 · 0 评论 -
算法-快排
package suanfa;public class kuaipai { public static void main(String[] args) { int a[] = { 0, 1, 8, 6, 5, 3, 2 }; int low = 0; int high = a.length - 1; sort(a, low,原创 2016-07-02 10:10:57 · 320 阅读 · 0 评论 -
算法-自然合并排序
问题描述:对于数组a[],先对其中的数字按有无顺序分类 举例:a[]={11,3,4,5,1,2,9},则可分类:{11},{3,4,5},{1,2,9},然后再两两归并排序。 代码:package suanfa;//自然合并排序public class ziranhebing { public static void main(String[] args) { int原创 2016-07-02 10:09:35 · 1441 阅读 · 1 评论 -
算法-合并排序
时间复杂度:o(nlog(n)) 代码:package suanfa;//合并排序public class hebingpaixu { public static void main(String[] args) { int a[]={1,9,8,7,5,4,2}; int temp[]=new int[a.length]; sort(a,t原创 2016-07-02 10:02:50 · 589 阅读 · 0 评论 -
算法-删数
问题描述:对于一个无序整整数x:任意输入数字n,得到删除n个位的数后,x的最小值package tanxinsuanfa;import java.util.*;//删数问题public class shanshuwenti { public static void main(String[] args) { int[] a = new int[100]; Sc原创 2016-07-02 09:58:29 · 276 阅读 · 0 评论 -
贪心算法-会场安排
描述:假设有足够多的会场供n个活动使用,找出安排完所有的活动后的最少使用会场数。 分析:对所有活动的开始时间,结束时间进行排序,依次遍历每一个时间,若为开始时间,则count++,结束时间count–;在这期间,count达到的最大值,即为活动所需的最小会场数。 代码:package tanxinsuanfa;public class huichanger { public static原创 2016-07-02 09:27:01 · 662 阅读 · 0 评论 -
筛选法求素数
package 素数总结;import java.util.Arrays;/** * @author wangpei * @version 创建时间:2017年8月15日 下午9:16:18 * 求1-n间的素数个数 * 素数:只有1和他本身两个因子的数字 * 不包含1 * * 筛选法:若一个数是素数,则其倍数必不是素数,标记其倍数为非素数,最终得到的未被标记的即为素数 */原创 2017-08-15 22:43:42 · 277 阅读 · 0 评论