CP3 vs cp-algorithms Implementation
Difference between en3 and en4, changed 420 character(s)
CP3 has some solid implementations of common data structures, such as UFDS, Segment Trees, Fenwick Tree, etc. It also has some nice implementation of algorithms such as Suffix Array,Lowest Common Substring Array, and many others I haven't got around to reading yet. The thing in common with CP3 implementations is that they're all very C style codes. (geeksforgeeks also has similar implementations)↵

On the other hand I also use cp-algoritms.com  for learning, and they also have very good implementations that use much more 'modern' code. For example CP3 always uses basic arrays, and C style string manipulation, whereas cp-algorithms uses the c++  `std::vector`  and  `std::string`  classes.↵

I know style implementations are usually faster as they are less bulky, but they're also harder to deal with, and as a result, you can make mistakes easier.↵

So my questions are:↵
Which should I use?↵
Is there actually a noticeable difference at all between the two?↵

Thanks for anyone who read this whole thing! ↵

(maybe I'll try submitting some problems with both CP3, and cp-algorithms implementations, and see which one has faster runtimes)


![ ](/predownloaded/4c/2b/4c2b6d08165f83763d22a7bbbedcafb729d93d64.png)↵

![ ](/predownloaded/18/33/183304e210dfaa681d0071c27172c297f545ba3d.png)↵

in both images the top one is the cp-algorithms, while the bottom one is the CP3 implementation. For the first problem is |s| <= 100000, for the second |s| <= 400000. The CP3 uses the same sized predefined for both, thats why it uses so much space for the first one.

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en4 English silverfish 2020-07-07 09:28:06 420
en3 English silverfish 2020-07-07 09:24:24 0 (published)
en2 English silverfish 2020-07-07 09:23:32 0 the top one is the cp-algorithms, and the bottom one is the CP3 implementation (saved to drafts)
en1 English silverfish 2020-07-07 08:52:18 1186 Initial revision (published)