How does initialization in K means take place? A book which I am reading specifies different way of initialisation in k means than what I have learnt through other sources. 
Book's version can be seen in the image attached,
 
and the other version is the dropping of random seeds as per the number of clusters specified. 
Can anyone clear out which one is correct? Or are both of them correct?
 A: First, you need to know that K-means algorithm has local minima problem, which means different initialization may have different results.
There are research papers to investigate how to initialize. For example, An empirical comparison of four initialization methods for the K-Means algorithm.
One simple way to do is that repeatedly run K-means many times with different random seeds. You can select K random points or you can select K instances in your data.
So, both of them are correct, and in practice, you want to start with many different random places, and these places can be selected by different ways.
Finally, although I mentioned different initialization MAY have different results, but in many cases, different initialization may also have no effect. So, how to chose random start is not super important.
A: Note that K-Means has two EM-like steps: 1) assign nodes to a cluster based on distance to the cluster centroid, and 2) adjust the cluster centroid to be at the center of the nodes assigned to it.
The two options you describe simply start at different stages of the algorithm. The example algorithm doesn't seem as intuitive to me, since you will start with huge, overlapping clusters. On the other hand, it looks like it would avoid the pathological "no nodes in this centroid's cluster" problem at the start of the algorithm -- though you can still eventually end up with the equally pathological "one node in this centroid's cluster" problem during iteration.
