I first learned Java more than 5 years ago. But I switch between different programming languages and sometimes it’s easy to get confused. Recently I decided to refresh my Java knowledge, and this cheat sheet is a note based on my revision. It covers OO (Object Oriented) concepts, Java Syntax, and Basic I/O (Input/Output).
This [...]
0. Context
I’m developing a program that allocates memory dynamically in a loop. For every iteration of the loop, the code allocates memory using malloc and then operates on the allocated memory. The program crashes at second iteration.
1. Locate the Bug
I added a few printf statements, and found that the program crashes [...]
Video Converter Android has crossed 100,000 downloads on Feb 20, 2012. It has been in Top 100 list of Android Video&Media category for over a month.
Recently I’ve been busy with my work and study, so I didn’t have time for improving the app. It’s functioning well on most Android devices, but there’re still [...]
Binary search is an algorithm that finds the position of a search target in a sorted array. It has an worst case run time of logN (for 1 million items, 20 probes can do), which makes it pretty efficient in searching. This post briefly describes binary search and provides two implementations with the same interface [...]
This is the second post for million integer problems. The first post is about generating million integers. You can find it here. This post deals with sorting of million integers.
It can be proven that the best that a comparison-based sorting can do has average run time of nlogn. However, given specific inputs, [...]
This is a post for a set of problems that deals with millions of integers. Part 1 deals with how to generate millions of integers.
This is normally used as a program to generate inputs for testing subsequent problems. We’ll look at two problems with a slight difference.
1. Allow user to input [...]
I’ve learned Knuth-Morris-Pratt Algorithm (KMP) several times. Several weeks after I learned it, if I am asked to solve the string/pattern matching problem, I only know there’s a KMP algorithm that does it efficiently at the time complexity of O(n+m). How to do it? I need to read it again. So I know I’ll need [...]
A More General Problem
The pre-computation of KMP finds the longest suffix of a sub-pattern P[0..j] (where j is [0, m-1], m is the length of the pattern) that is also the prefix of this sub-pattern.
A more general problem is to find the longest suffix of a pattern X[0..lx-1], which is also the [...]
MD5 (Message-Digest) is an algorithm commonly used as cryptographic hash function. It takes an arbitrary length of data and produces a 128-bit (16 bytes) hash value. MD5 is not recommended for secure applications any more because attack messages can be constructed to produce collision. However, without intentional attack, MD5 is extremely unlikely to produce a [...]
40% Discount on My Book — Android NDK Cookbook
Android NDK Cookbook ebook 40% discount with promotion code MREANC40 at Packt Publishing The promotion code is valid until 15th June.Categories
- Android Apps (18)
- Android Audio Editor (1)
- TS 2 (3)
- Video Converter Android (8)
- Video2Gif (1)
- Android Tutorial (26)
- Android Dev Tools (1)
- API illustrated (8)
- Multimedia API (3)
- ffmpeg on Android (4)
- NDK (6)
- UI (5)
- Animation (1)
- Code Snippet (2)
- Coding Beyond Technique (18)
- a word, a world (4)
- Bug Rectified (4)
- Programming Habit (1)
- Software as a Career (1)
- Software as User Experience (1)
- Compilers and Related (2)
- ELF (2)
- Computer Languages (31)
- C/C++ (13)
- Java (9)
- JavaScript (2)
- PHP (1)
- Python (8)
- Data Structure & Algorithms (29)
- Bits (1)
- Data Structure (5)
- Integers (10)
- BigInteger (1)
- Prime (4)
- Search (3)
- Sorting (5)
- Strings (5)
- Database (1)
- SQLite (1)
- Digital Signal Processing (33)
- Distributed Systems (17)
- Apache Cassandra (6)
- Apache Hadoop (8)
- Apache Avro (3)
- Apache Nutch (3)
- Apache Solr (1)
- Linux Study Notes (40)
- crontab (1)
- Linux Kernel Programming (8)
- Linux Programming (12)
- IPC (2)
- Linux Network Programming (5)
- Linux Signals (2)
- Linux Shell Scripting (1)
- ssh (3)
- Machinery (30)
- misc (1)
- My Ideas (1)
- My Project (3)
- Mobile Caching (1)
- Selective Decoding (2)
- My Publication (1)
- My Readings (1)
- Networking (15)
- Program for Performance (8)
- Uncategorized (1)
- Virtual Machine (2)
- Web Dev (8)
- web components (3)
- Android Apps (18)
Recent Comments
Archives
- May 2013 (1)
- April 2013 (1)
- March 2013 (4)
- December 2012 (2)
- November 2012 (6)
- October 2012 (6)
- September 2012 (3)
- August 2012 (13)
- July 2012 (15)
- June 2012 (3)
- May 2012 (8)
- April 2012 (4)
- March 2012 (13)
- February 2012 (19)
- January 2012 (9)
- December 2011 (11)
- November 2011 (12)
- October 2011 (4)
- September 2011 (12)
- August 2011 (16)
- July 2011 (15)
- June 2011 (6)
- May 2011 (10)
- April 2011 (13)
- March 2011 (20)
- February 2011 (4)
- November 2010 (2)
- May 2010 (1)
- April 2010 (1)
- February 2010 (1)
