You would need the masonry plugin in order for the divs to sit as you wish, here is a link to it: Masonry. The varying height of the divs will push them out of flow and you will see that they don't appear where you want them to. Also with Boostrap the columns in any given row need to be less than or equal to 12. In your row they are equal to 16 and being pushed into the next available space they can find.
The structure of your HTML should be:
<div class="container">
<div class="row">
<div class="col-xs-4">
</div>
<div class="col-xs-4">
</div>
<div class="col-xs-4">
</div>
</div>
</div>
If you want all the columns to have equal height I would suggest using the flexbox layout:
.row-flex, .row-flex > div[class*='col-'] {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
flex:1 1 auto;
}
.row-flex-wrap {
-webkit-flex-flow: row wrap;
align-content: flex-start;
flex:0;
}
As all your divs have varying heights (according to your picture) you would be better off with the masonry plugin.