- 博客(39)
- 资源 (1)
- 收藏
- 关注
原创 找出最大K个数,TopK问题
1.直接排序,再取前K; 时间复杂O(logN)2.维护一个最大K个数的有序数组,逐个遍历; 时间复杂O( K * N )3.维护一个最大K个数的小根堆,逐个遍历; 时间复杂O( N * logK ) 其它: 大规模数据处理,TopK问题
2017-06-13 00:18:56 560
原创 Java多线程
1. 创建与启动:a.继承Thread方法,重写run()方法new Thread(){ public void run(){ }}.start();b.实现Runnable接口,重写run()方法,再传入Thread。new Thread(new Runnable(){ public viod run(){ }}).start();区别:Thread本身实
2017-06-12 20:39:25 264
原创 区分 wait() sleep()
所属类:wait()是Object中的方法,sleep()是Thread中的静态方法锁:sleep只是让当前线程让出cpu给其他线程,不会释放对象锁;wait是进入对象的 wait pool池中,会释放对象锁。使用范围:3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在 任何地方使用 synchronized(x){ x.noti
2017-06-12 20:14:42 264
转载 Object有哪些基本的方法
1.toString方法 该方法用得比较多,一般子类都有覆盖。2.equals方法 该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。子类一般都要重写这个方法。 3.hashCode方法 该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。 一般必须满足obj1.e
2017-06-12 19:33:35 1516
原创 Java中的一些小点
可参考:近5年133个Java面试问题列表最有价值的50道java面试题 适用于准入职Java程序员100+经典Java面试题及答案解析1.多态A系统访问B系统,B系统可提供多种服务方式,而这对于A系统来说都是透明的。实现多态的技术:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。多态的作用:消除类型之间的耦合关系,方便调用。多态
2017-06-12 13:01:09 415
原创 Spark VS Hadoop
关键字: Saprk:内存、迭代计算、机器学习、实时性、易用 MapReduce:大数据量、离线批处理 Spark与Hadoop MapReduce在业界有两种说法 : 一是 Spark 将代替 Hadoop MapReduce,成为未来大数据处理发展的方向 ; 二是 Spark 将会和 Hadoop 结合,形成更大的生态圈。Spark与Hadoop MapReduce大比拼,
2017-06-12 12:30:10 319
原创 顺序栈实现
#include<iostream>#include<stdio.h>#include<stdlib.h>using namespace std;//----------顺序栈的实现-------------#define STACK_INIT_SIZE 100#define STACKINCREAMENT 10#define OVERFLOW -2#define OK 1#def
2017-06-11 23:43:45 269
原创 C常用库函数实现
// ---------- strlen -------------int strlen(char *t){ int length = 0; if(t == NULL) return -1; while (*t != '\0') { t++; length++; } return length;}size_t
2017-06-11 23:41:41 268
原创 找到最长子串位置
#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;//---------------------------------char* findMaxStr(char* ch){ char *maxP, *temP; int maxN, currentMaxN; max
2017-06-11 23:40:13 282
原创 最短路径—Dijkstra算法和Floyd算法
http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html
2017-06-11 23:27:19 248
原创 大数据量问题分析
整理自网络1.大数据量排序,重复次数最高10条数据原出处: 重复次数最高的10条数据A. 有10个G的数据。如果两条数据一样,则表示该两条数据重复了, 现在给你512M的内存,把这10G中重复次数最高的10条数据取出来。分析:10G是数据整型,那实际放到内存中占用不了这么多,会略小点,内存中用4B INT保存,而文本中用每个字符就是1B。但还是得考虑切分数据。解决:通用方法A:1. 先排序, 1
2017-06-11 09:00:02 644
转载 求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case和条件语句
#include <stdio.h> #include <stdlib.h> #include <string.h> int add_fun(int n, int &sum) { n && add_fun(n-1, sum); //逻辑与 先计算左边的值 如果 左边的值不为真 则不会计算右边 return (sum+=n); } int main() {
2017-06-10 12:41:49 246
原创 设计模式
可参考:卡奴达摩:23种设计模式1_单例 确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 优点:避免频繁地创建新的实例,提升了效率。//饿汉式(静态常量)[可用]public class Singleton { private final static Singleton INSTANCE = new Singleton(); private Sing
2017-06-10 05:15:04 248
转载 二叉排序树转双向链表
思路:用一个全局变量指针记录前一个节点,在中序遍历的过程中,用记录的前一个节点指针来调整指针指向。#include <iostream>// 1:构造二叉查找树;// 2:中序遍历二叉查找树,因此结点按从小到大顺序访问,假设之前访问过的结点已经调整为一个双向链表,那么// 只需要将当前结点连接至双向链表的最后一个结点即可,访问完后,双向链表也就调整完了#include <iostr
2017-06-10 04:35:58 295
原创 树结构
二叉树:二叉树是每个节点最多有两个子树的树结构。满二叉树:一棵深度为K且有2^k-1个结点的二叉树称为满二叉树。完全二叉树:每个结点与其对应深度的满二叉树一一对应。二叉排序树:或者是一棵空树,或者是具有下列性质的二叉树: A. 左子树若不为空,则左子树上所有节点的值均小于它的根结点值; B. 右它的右
2017-06-10 01:34:42 319
原创 原码、补码、反码
原码、补码、反码、移码-1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补 就是-128. 但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示.(对-128的补码表示[1000 0000]补算出来的原码是[0000 0000]原, 这是不正确的)
2017-06-05 18:38:36 320
原创 字符串回文判断(palindrome)
回文判断 palindrome前后对称的字符串可称为回文,比如 abcdedcba递归现实现回文判断能用递归实现的问题特点代码在XCode下编写,自带的re-indecent不好用,推荐一个在XCode8.0上能用的排版插件XcodeClangFormat
2017-06-05 09:22:58 1077
原创 理解Java泛型 通配符 ? 以及其使用
理解Java泛型 通配符 ? 以及其使用什么是泛型:Java泛型带到的好处:泛型自定义:类、接口、方法泛型的使用通配符?什么时候会用通配符:通配符的extends super关键字不使用泛型的变量
2017-06-04 12:13:11 733 1
原创 算术与逻辑移位
逻辑左移=算数左移,右边统一添0 逻辑右移,左边统一添0 算数右移,左边添加的数和符号有关e.g:1010101010,其中[]是添加的位逻辑左移一位:010101010[0]算数左移一位:010101010[0]逻辑右移一位:[0]101010101算数右移一位:[1]101010101
2015-05-05 23:03:13 835
原创 ANR
ANR 1.用户在进行了一种操作后5秒钟没有响应。 2.broadCastReceiver所进行的操作在10秒内没有完成。 3.Service在20秒内没返回结果。
2015-04-25 21:56:10 320
原创 Git常用命令
GIT命令速查表检查是否有:SSH: ls -al ~/.ssh 生成SSH:ssh-keygen -t rsa -C "your_email@example.com"
2015-04-25 15:12:39 655
转载 Android之NDK开发
原文地址一、NDK产生的背景 Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动
2015-04-19 23:37:14 390
转载 Java垃圾回收机制
地址垃圾回收的意义垃圾收集的算法分析System.gc()方法finalize()方法触发主GC(Garbage Collector)的条件减少GC开销的措施关于垃圾回收的几点补充
2015-04-10 18:26:21 453
转载 程序在内存中的位置
C程序的存储区一般认为在c中分为这几个存储区: 1. 栈 --有编译器自动分配释放 2. 堆 --一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3. 全局区(静态区) --全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束释放。 4. 另外还有一个专门
2015-04-10 18:10:01 989
转载 MVC设计模式
MVC设计模式:MVC设计模式是为了让编程工程项目层次化,使之分工明确,便于设计项目工程和后期修改维护。M:model实现具体的功能代码,业务逻辑。V:view实现界面UI。C:Control作为M和V的桥梁,使之有条理的协调工作。
2015-04-07 22:59:04 418
原创 JAVA的数据类型
引用数据类型: 类、接口类型、数组类型、枚举类型、注解类型; 基本数据类型和引用数据类型的区别: 基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上; 引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。 例如,有一个类Person,有属性name,age,带有参的构
2015-04-07 16:37:46 591
转载 静态导入Static import
静态导入Static import 要使用静态成员(方法和变量)我们必须给出提供这个静态成员的类。 使用静态导入可以使被导入类的静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名。 静态导入也是JDK5.0引入的新特性,下面以实例来说明静态导入的用法: 比如先在一个包中定义一个这样的类:package com.example.learnjava;public cla
2015-04-07 11:00:44 349
原创 MySQL 命令入门
MySQL 命令入门命令分类:DDL Definition :数据库模式定义语言。关键字:CREATE,DROP,ALTERDML Manipulation :数据操纵语言。关键字:INSERT、UPDATE、DELETEDQL Query :数据库查询语言, 关键字:SELECTDCL Control :数据库控制语言 。关键字:GRANT、REMOVE 使用MySQL:a.首先把MyS
2015-04-05 14:11:20 592
原创 ACID
ACID原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)1.原子性: 整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错 误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。2.一致性: 在事务开始之前和事务结束以
2015-04-04 23:15:36 427
原创 排序算法总结
常用排序总结:稳定性作用: 1.通常对只有一个key的记录来排序时,若两个记录的key相同,稳定排序不会改变排序前后的顺序。 2.对有多个key来说,如基数排序,从次要key开始排序,若排序前a1在a2前,且a1和a2优先级大的key相同,排序后次序a1仍在a2前,保持了他们的稳定性。稳定性排序的意义: 1.用于类似于基数排序这样多个key的排序。 2.比如你要给一个结
2015-04-04 10:58:02 493
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人