1. A puzzle about sorting.
Given n double numbers, print the top m in a descending order. If two of the numbers have the same value, then the one appear earlier would have a higher weight.
This doesn't sound so hard. However, there are quite a number of tricks here. 1. Efficiency. 2. In Place Sorting.
I first tried quick sort. It supposed to be quite fast. However, I kept getting the wrong answer feedback. The reason is that when two numbers have equal value, quick sort doesn't make the original order in place.
Then bubble sort. Well, the answers would be correct, however, it's not efficient enough. Run Time Error.
Try merge sort, which is supposed to be in place and quite efficient. However, still Run Time Error. When n is very large and m is small, it's too heavy to perform a sort to the n numbers then pick the top m.
It reminds me of heap, which keeps a good order during construction(heapify). However, it's also no good if we keep the heap size n when we are only interested in the top m elements. We'd better keep a heap size of m, then eliminate all the small elements out of the top m. Priority queue! Thankfully, problem got solved.
2. Career consultancy.
I consulted Desmond who is a career consultant in SOC. He gave a very good advice on the career path. Firstly, I'd better work in an IT startup and learn some business while working as an engineer. Then go to a big company which gives a better branding of oneself. It would then be easier for people to trust and work with you if you're going to do startups. It's also safer to do startups while working in a big company instead of quitting jobs or doing it immediately after graduation. He helped refer to IBM and another startup company named "Thatz". Kaifu Lee also advise the fresh graduates to"participate first, then make it happen 先参与创业，再主导创业". I guess that's the right way.
3. CS3217 team project.
I have to say that the team mates are just too awesome. They learn and implement very quickly. Moreover, they are able to design the architecture very nicely. I am learning a lot from them.
Need to write the FYP report very quickly!