
算法
wlchn
这个作者很懒,什么都没留下…
展开
-
Java 二分法查找
public class DichotomySearch { public static void main(String[] args) { int[] arr = new int[] { 12, 23, 34, 45, 56, 67, 77, 89, 90 }; System.out.println(search(arr, 12)); S原创 2015-08-10 12:14:23 · 310 阅读 · 0 评论 -
百练 2775:文件结构“图”
http://bailian.openjudge.cn/practice/2775/#include#include#includeusing namespace std;void sort(int N,string s[]){int i=0;while(iint j=i+1;while(jif(s[i]>s[j]){string t;t=s原创 2015-08-10 11:08:35 · 987 阅读 · 0 评论 -
百练 2809:计算2的N次方
http://bailian.openjudge.cn/practice/2809/#include int main(){ int n,i,j; int a[100]={2}; scanf("%d",&n); for(i=1;i for(j=0;j a[j]=a[j]*2; for(j原创 2015-08-10 11:04:30 · 875 阅读 · 0 评论 -
哈希冲突的主要解决方法分析
看了ConcurrentHashMap的实现, 使用的是拉链法.虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的。当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时。冲突就难免会发 生。另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出。因此,处理冲突和溢出是 哈希技术中的两个重要问题。1、转载 2015-08-10 18:30:34 · 434 阅读 · 0 评论 -
海量数据处理方法
第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法, 比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大 的几原创 2015-08-12 17:16:29 · 371 阅读 · 0 评论 -
Java 堆排序 Top K
1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]2.堆排序的思想 利用大原创 2015-08-10 12:22:43 · 1908 阅读 · 0 评论 -
结构体占用空间以及对齐原则
关于内存对齐一:1.什么是内存对齐假设我们同时声明两个变量:char a;short b;用&(取地址符号)观察变量a,b的地址的话,我们会发现(以16位CPU为例):如果a的地址是0x0000,那么b的地址将会是0x0002或者是0x0004。那么就出现这样一个问题:0x0001这个地址没有被使用,那它干什么去了?答案就是它原创 2015-09-11 09:03:59 · 1848 阅读 · 0 评论 -
利用正则表达式抽取网页信息
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;原创 2015-08-11 09:54:40 · 1113 阅读 · 0 评论 -
MySQL索引建立、优点、不足
索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了原创 2015-08-10 18:52:55 · 415 阅读 · 0 评论 -
Enumeration与Iterator的对比,ArrayList与Vector的比较
Enumeration与Iterator的对比hashtable中依然遗留着Enumeration的遍历方法,对比与Iterator的区别。 Enumeration 接口Iterator 接口参数的含义枚举类型迭代器元素类型所在包jav原创 2015-08-10 18:36:59 · 705 阅读 · 0 评论 -
百练 2813:画家问题
http://bailian.openjudge.cn/practice/2813/#include #include #include using namespace std;int t = 0,n = 0;char ch[20];bool c[20][20] = {0},p[20][20] = {0},map[20][20] = {0};void cha原创 2015-08-10 11:10:53 · 999 阅读 · 0 评论 -
百练 2723:不吉利日期
http://bailian.openjudge.cn/practice/2723/#includeusing namespace std;int main(){int d[365],n,i;int m[12]={12,43,71,102,132,163,193,224,255,285,316,346};cin>>n;for(i=0;id[i]=n;if原创 2015-08-10 11:11:47 · 1434 阅读 · 0 评论 -
Java 快速排序 快排
//快速排序void quick_sort(int s[], int l, int r){ if (l { //Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 int i = l, j = r, x = s[l]; while (i {原创 2015-08-10 12:13:23 · 825 阅读 · 0 评论 -
百练 2785:武林
http://bailian.openjudge.cn/practice/2785/#includeusing namespace std;class data{public: char c; int i,j,x,y,z; bool b;//走的方向 int d(){ int t; if(c=='S') t=(0.5*x+0.5*y)*(z原创 2015-08-10 11:22:53 · 988 阅读 · 1 评论 -
百练 2774:木材加工
http://bailian.openjudge.cn/practice/2774/#include using namespace std;int len[10001]={0},n,k;int input(){ cin>>n>>k; int max=0; for(int i=0;in;++i){ cin>>len[i]; if(l原创 2015-08-10 11:21:18 · 650 阅读 · 0 评论 -
百练 2793:孙子问题
http://bailian.openjudge.cn/practice/2793/#include#includeusing namespace std;long EE(long a,long b,long &x,long &y){ //extend eulid long d; if(b==0){ x=1;y=0; return a; } d=EE(b,a%原创 2015-08-10 11:19:34 · 1985 阅读 · 2 评论 -
百练 2797:最短前缀
http://bailian.openjudge.cn/practice/2797/#includeusing namespace std;struct trie{ int count; trie *next[26]; trie(){ count=0; int i=0; for(i=0;i26;i++){ next[i]=NULL; } }}r原创 2015-08-10 11:23:47 · 1756 阅读 · 0 评论 -
I am a student 单词逆序输出
C++:# include # include void fun(char* a,char* b){ int i,j,k=0; for(i=strlen(a)-1;i>=0;i--) { if(a[i]==' ') { for(j原创 2015-08-10 11:46:22 · 1364 阅读 · 0 评论 -
百练 2798:2进制转化为16进制
http://bailian.openjudge.cn/practice/2798/#include#include#includeusing namespace std;int main(){ int i,n; string s[25]; for(i=0;i25;i++) s[i]=" "; s[0]="0000"; s[1]="0001"; s[2]=原创 2015-08-10 11:25:13 · 626 阅读 · 0 评论 -
百练 2807:两倍
http://bailian.openjudge.cn/practice/2807/#include using namespace std;int main(){int a[16],i,j,k,m,n,count;while(cin>>n&&n>0){count=0;a[0]=n;i=1;while(cin>>n&&n>0){a[i]=n;i++;原创 2015-08-10 11:18:06 · 707 阅读 · 0 评论 -
百练 2767:简单密码
#include #include #include int main(){ char t[11],A[201];int i; while(gets(t)&&strcmp(t,"START")==0){ gets(A); for( i=0 ; A[i]!='\0' ; i++ ){if(A[i]>='A'&&A[i]A原创 2015-08-10 11:14:16 · 903 阅读 · 0 评论 -
LeetCode 68 Text Justification
words = ["This", "is", "an", "example", "of", "text", "justification."]temp_str = ""j_words = []words.each do |word| if temp_str == "" if (temp_str + word).length <= 16 temp_str = temp_st原创 2017-08-09 17:09:37 · 316 阅读 · 1 评论