Labels

_fuxi (75) _IV (146) _misc (5) {610610 (30) algo (1) automatedTrading (8) banking/economy (3) book (14) c++misc (125) c++real (15) c++STL/java_container (7) cppTemplate (1) db (13) DB_tuning (4) deepUnder (1) dotnet (69) eTip (17) excelVBA (12) finance+sys (34) financeMisc (24) financeRisk (2) financeTechMisc (4) financeVol (21) finmath (17) fixedIncome (25) forex (16) IDE (24) invest (1) java (43) latency (4) LinearAlgebra (3) math (30) matlab (24) memoryMgmt (11) metaPrograming (2) MOM (15) msfm (1) murex (4) nofx (11) nosql (3) OO_Design (1) original_content (4) scriptUnixAutosys (19) SOA (7) socket/stream (15) sticky (1) subquery+join (2) swing (32) sybase (6) tech_orphan (12) tech+fin_career (30) telco (11) thread (21) timeSaver (13) tune (10) US_imm (2) US_misc (2) windoz (20) z_algo+dataStructure (4) z_arch (2) z_c#GUI (30) z_career (10) z_career]US^Asia (2) z_careerBig20 (1) z_careerFinanceTech (11) z_FIX (6) z_forex (31) z_hib (2) z_ikm (7) z_inMemDB (3) z_j2ee (10) z_oq (14) z_php (1) z_py (26) z_quant (4) z_skillist (3) z_spr (5)

Sunday, June 14, 2015

to a novice programmer -- the importance of data structures in financial IT systems

Data structure is essential and non-trivial to every programming language on wall street -- java (collections), c++ (STL), python/perl (high-level data types)... A lot of algorithms (in the traditional, strict sense of the word) are created on or using classic data structures. There are a lot of jargons you need to grasp. Everyday programming requires you to be familiar with common operations on these data structures, but these are relatively straightforward. However, here are some of the non-trivial aspects of data structures and
algorithms

* sort python dict or tuple
* internals of hash table and ConcurrentHashMap
* STL container holding pointers
* STL pair
* STL stream iterators
* customize a sorted set/map for MyClass in C++, which is harder than java
* sort a map by value (real interview question) in java. Perl and python is easy.
* whiteboard-implement a blocking stack/queue (UBS)
* whiteboard-implement a basic hash table (MS)
* find top 99 in a large array (Barc) but no need to return them sorted
* choose array vs circular array vs linked list, in terms of memory efficiency (JPM).
* given 2 nodes in a binary tree, with no pointers except pointer-to-parent, find lowest common ancestor (Google)
* iterative tree walk (Barc)
* filtering iterator (MS)
* STL transform(), erase(), partition() etc
* STL allocators
* STL functors, binders
* STL iterator adaptors (back_inserter etc)




--
Posted By familyman to learning finance,c++,py... <http://bigblog.tanbin.com/2011/05/to-novice-programmer-importance-of-data.html> at 5/03/2011 07:34:00 PM