This is part 2 of the post “suffix array”, which covers the string matching/searching problem that can be solved by suffix array. You may want to read part 1 first.
String Matching/Searching
Once we have the suffix array, it’s easy to check if another string appears in the input string/text or not. If [...]
Suffix Array
Suffix array is an array which contains the suffix of a string sorted in lexicographical (alphabetical) order. It’s used in several string matching/searching problems. This post briefly explains suffix array, its applications and provides C implementations to some of them.
To compute the suffix array, we first find all the suffix. In [...]
The Algorithm
Merge Sort is a stable (preserve the order of equal elements), divide and conquer, comparison-based sorting algorithm. It has the worst-case run time of nlogn. The primary disadvantage of merge sort is usage of additional memory space.
The basic idea of merge sort is as below,
Divide the input array into sub [...]
This is the 4th part of the Java Programming Cheat Sheet. You can find the first three parts here:
1. OO Concepts
2. Java Syntax
3. Basic I/O
Collection: sometimes called a container, an object that groups multiple elements into a single unit. The Java [...]
You may want to read the previous post “heap” first.
Heapsort Algorithm
Heapsort is a in-place, not stable, worst-case nlogn sorting algorithm.
The simple implementation of heapsort is simply insert all elements into the heap and then remove the root repeatedly until the heap is empty. This is implemented in the [...]
You may want to read the post “heap” first.
Priority Queue
A priority queue is a data structure that supports at least the following two operations,
1. insert: insert an item with priority
2. pull_min_element/pull_max_element: depends on your priority queue type (min priority-queue or max-priority-queue), the operation find the item with min/max [...]
Heap and Its Properties
Heap is a data structure frequently used to implement heap sort and priority queue. It has structure property and heap-order property. The simplest heap is binary heap. For the convenient of discussion, the description below assumes min binary heap.
Structure property: A heap is a complete binary tree. It means all [...]
Brief Notes of the Algorithm
Quicksort has an average run time of nlogn and worst case run time of n^2. Quicksort is often faster than other O(nlogn) algorithms in practice. And it’s used in implementation of C standard library qsort function.
Quicksort is not a stable sort, which means if two elements are equal, [...]
This is the third part of the Java programming cheat sheet. You may also interested in the first part OO concepts and second part Syntax.
I/O from Command Line: Java provides two ways, through the standard streams and through the Console standard streams: Java supports three standard streams: standard input (System.in), standard [...]
This is the second part of java programming cheat sheet. You may also interested in the first part OO Concepts and third part Basic I/O.
Primitive Data Types: Java compiler assign a default value for class fields, but not local variables.
Data Type
Sign
Default Value (for fields)
byte [...]
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)
