Optimizing the blog loop

First of all: do not use query_posts

use get_posts or new WP_Query instead.

If you want to show only most viewed posts, you’ll need to add action ( for ex. wp ) check if your on single post page and update that post meta views ( +1 ).
Then you could do something like these

$topViewedPosts = new WP_Query( array(
    'post_type' => 'post',
    'meta_key' => 'views',
    'orderby' => 'meta_value_num', // sort by views
    'order' => 'DESC', // sort 3 - 2 - 1
    'posts_per_page' => 5
) );
if( $topViewedPosts->have_posts() )
    while( $topViewedPosts->have_posts() ) : $topViewedPosts->the_post();
        // your content here
    endwhile;
endif; wp_reset_postdata();

May be i misunderstood what you’r looking for.. try to explane better than..