my name is Stoimen and I’d like to share my experience on algorithms and data structures and here you can find lots of posts on these topics. I’d like to share also my knowledge on JavaScirpt, jQuery, CSS, HTML, PHP, Zend Framework, MySQL and webpage optimization techniques.


33 thoughts on “About

  1. Hi Stoimen, I’m writing this comment just to congratulate you on this site 🙂 In particular I like your section, algorithms, helpful expecially for those that are new of programmation! Sorry for my engligh and compliments again! Carlo.

  2. Hello Sir………..

    You have done a Wonderful Work on this Site…………

    Really Great Website……….


  3. Hello Sir…,
    Really sir you have described data structure concept in a very good nd simple way.
    I liked the web site very much!

  4. Hi There,

    I stumbled upon your blog and I enjoyed your great explanation. I just wanted to know if you would be interested in partnering to develop an application or bit of programming that would make life easier for people when arranging meetings and such by determining day/ date combinations.

    I am looking to market it to the likes of Google/ Microsoft/ apple etc and would love to partner with you on it.

    Please let me know your thoughts on this.

    Kind Regards

    Nick Wigmore

  5. The presentation and post construction is excellent. The contents of the post is mostly very easy to understand. The best part is the illustrations, they are of very high quality and helps to understand the algorithms. Please keep up this excellent blog.

  6. Thanks for the great information. I’m reading through some journals for a research project in class, but a lot of the journals referred to algorithms that went a bit over my head, being a first semester computer science major. Thanks for such clear, concise explanations!

  7. Hi,
    I been following your algorithms on DZone. I have a question. If I want to design a chess game than what algorithms should I look into for competitive game play? . Code should in JavaScript so performance in mind.

  8. Hi Pirzada Rashid,

    the chess game is a typical min-max game. You’ll definitely try to maximize the position of one of the players and minimize it to the other. Actually the crucial part in this strategy is the accurate evaluation of the position. So you must start from there and that is where good chess softwares are really strong.

  9. Hi,

    I have found your Day of Week PHP solution on the web and tried to implement it in awk, because I am writing an application where I could need this routine.
    Unfortunately it does only work for the 31.1.1883 as in your example.

    You can download my test program and maybe you see what I did wrong?

    Many thanks in advance for your help
    and Merry Xmas


  10. Hi Stoimen,

    I would like to congrats you, this blog is super simple explained and let me realized how some algorithms work. Thanks for this work!


  11. Hi Stoimen,

    Nyc work..I m interested in algorithms and your discussed articles helped me lot..thanks for your great job.

  12. Hello, Stoimen.
    In searching for an algorithm for calculating the day of the week, I came across your explanation on Dzone. Unfortunately it is wrong. You left out a simple step. Nowhere in your steps do you account for the day of the month. Once you choose a year and a month every day on that month would come out as being the same day of the week.

    I believe that all you need to do is add “Step 0. Take the day of the month.” Then Step 5 has to say to add the numbers from steps 0 through 4.

  13. Amazing your post , congratulations !!!!!!!!!!!
    Very very gr8.

    I love PHP and i sure have to congratulation you for this best site…

    best reguards

  14. Hi i would like to know how to implement this concept in PHP.

    This is the on-screen keyboard from one of the video communication devices we use in our office:

    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    0 1 2 3 4 5 6 7 8 9 ! @ # $ % ^ & * ( ) ? / | \ + –

    ` ~ [ ] { } SPACE . , ; : ‘ “ _ = BS

    The on-screen keyboard comes with the following remote control:


    Write an algorithm that calculates:

    – The most efficient way to enter any given sentence using the least amount of key strokes.

    Although there might be more than one solution, you only have to give us one.

    – The actual sequence of key-presses on the remote control for this solution.

    The following rules apply:

    – The initial position of the cursor is at the first character of the sentence that needs to be


    – Only one cursor key can be pressed on the remote control at the same time.

    – When the cursor is on the top row and you press cursor-up on the remote control, the

    cursor will move to the corresponding column on the bottom row. Example: from E to {

    – The same applies to the most left column, the most right column and the bottom-row

    when respectively cursor-right, cursor-left and cursor-down are pressed on the remote


    – Special moves:

    o When the cursor is on the space bar and cursor-down is pressed on the

    remote control, the cursor will move to I (capital i).

    o When the cursor is on the space bar and cursor-up is pressed on the remote

    control, the cursor will move to #.

    o When the cursor is on I, J, K, L, M, N, O or P and cursor-up is pressed on

    the remote control, the cursor will move to the space bar.

    o When the cursor is on 8,9, !, @, #, $, % or ^ and cursor-down is pressed,

    the cursor will move to the space bar.

    o When the cursor is on back space (BS) and cursor-down is pressed on the

    remote control, the cursor will move to Z.

    o When the cursor is on back space (BS) and cursor-up is pressed on the

    remote control, the cursor will move to -.

    o When the cursor is on Y or Z and cursor-up is pressed on the remote control,

    the cursor will move to back space (BS)

    o When the cursor is on + or – and cursor-down is pressed on the remote control,

    the cursor will move to back space (BS)

    Example 1 :

    $sentence = ‘7&’;

    $keyboard = new Keyboard();


    Should output one of the following:

    Solution 1: ENTER (7) – DOWN – RIGHT – RIGHT – UP – ENTER (&)

    Solution 2: ENTER (7) – RIGHT – DOWN – RIGHT – UP – ENTER (&)

  15. I just stumbled upon your website and I think it’s absolute awesome! Thank you for putting this together so well; your posts are perfectly informative, fun, interesting, and easy to read and I’ve honestly learned more in 20 minutes here that I could in 2 hours at any other coding site. I look forward to checking it out in more depth soon.


  16. Your site is terrific. Contents is great and it seems you have an eye for design as well.
    The quality of visuals and harmony of colors really drew me in.

    Do you write on Quora?

  17. Hi Stoimen,

    I came across this site searching for bucket sort. And the first thought that came to my mind from your site name was ‘stoi(C++)-men’ .. so I thought it was kinda apt name for a data structures and algorithms blog! Didn’t realize it was your name ! 😀

  18. Hi Stoimen,
    thank you for sharing your algorithms with us. I like the visualisation of the sort -algorithms, helped me to understand the process. Your site should be on on Google first entry, would save alot of research time.


  19. Thanks for sharing your knowledge.

    I have a question you could maybe help me to answer. I would like to know if there are well-known methods (algorithms) to construct a directed acyclic graph for instance such that each vertex has a fixed indegree value. Since I’m not from the field of computer science or math I do not know them. Any help will be appreciated.


  20. Hi Stoimen,

    Many thanks for your great site. It’s been a while since I’ve learned those algorithms and data structures in school but after reading your site, I couldn’t resist to sit down and start coding my way through them again! Great inspiration!

    Thank you!

  21. A unique algorithm that uses a truth table may be of interest. It does it in only three lines of code. The first line initializes the table. The second line updates the table and when completed all occurrences are found. The third line converts the truth table to positions.

    for( x = 0; x < endsiz; x++ )
    *ary++ = string[ x ] == substg[ 0 ];

    for( y = 1, ary = startmem; y < sizsub; y++, ary = startmem )
    for( x = y; x < ( endsiz + y ); x++ )
    *ary++ &= string[ x ] == substg[ y ];

    for( y = 0, x = 0; ( x < endsiz ) && ( y < sizvec ); x++ )
    if ( *ary++ )
    vec[ y++ ] = x;

    Because of the limitations of C, the positions are limited to an arbitrary length. A more detailed explanation can be found in: http://1drv.ms/1PuVpzS

  22. This is the first time when I come to know a blog which is explaining algorithm very clearly. Love to read it. I was searching for Email Subscription box but I could not. I am your fan.

  23. I think you should create an article index according to categories. You have very qualified articles but i cant see them tidy.

Leave a Reply

Your email address will not be published. Required fields are marked *