aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/plots.html
blob: 35aef31f9c198640f729f3de2bb9103bbb715327 (plain) (tree)
1
2
3
4
5
6


             

          
                                                                          













































































































                                                     

              





















                                                                               


























                                                                                                                               
      
 













                                                                                                                                               
                                                                                                










                                                                                                                                                            
 



                                      
---
title: Plots
layout: plots
groups:
  - navbar
navbar_link: <span class="glyphicon glyphicon-th-large"></span>&nbsp;Plots
custom_css: plots.css
plot_kinds:
  - sorted
  - randomized
  - reversed
plots:
  - codename: bubble
    brief_name: Bubble sort
    display_name: Bubble sort
    min_length: 0
    max_length: 200
    repetitions:
      sorted: 1000
      randomized: 100
      reversed: 100
    complexity:
      sorted: O(<var>n</var>)
      randomized: O(<var>n</var><sup>2</sup>)
      reversed: O(<var>n</var><sup>2</sup>)
  - codename: bubble_optimized
    brief_name: "&hellip; \"optimized\""
    display_name: "\"Optimized\" bubble sort"
    min_length: 0
    max_length: 200
    repetitions:
      sorted: 1000
      randomized: 100
      reversed: 100
    complexity:
      sorted: O(<var>n</var>)
      randomized: O(<var>n</var><sup>2</sup>)
      reversed: O(<var>n</var><sup>2</sup>)
  - codename: heap
    brief_name: Heapsort
    display_name: Heapsort
    min_length: 0
    max_length: 200
    repetitions: 100
    complexity: O(<var>n</var> log <var>n</var>)
  - codename: insertion
    brief_name: Insertion sort
    display_name: Insertion sort
    min_length: 0
    max_length: 200
    repetitions:
      sorted: 1000
      randomized: 100
      reversed: 100
    complexity:
      sorted: O(<var>n</var>)
      randomized: O(<var>n</var><sup>2</sup>)
      reversed: O(<var>n</var><sup>2</sup>)
  - codename: merge
    brief_name: Merge sort
    display_name: Merge sort
    min_length: 0
    max_length: 200
    repetitions: 100
    complexity: O(<var>n</var> log <var>n</var>)
  - codename: quick_first
    brief_name: Quicksort (first element as pivot)
    display_name: Quicksort (first element as pivot)
    min_length: 0
    max_length: 200
    repetitions: 100
    complexity:
      sorted: O(<var>n</var><sup>2</sup>)
      randomized: O(<var>n</var> log <var>n</var>)
      reversed: O(<var>n</var><sup>2</sup>)
  - codename: quick_second
    brief_name: "&hellip; second element&hellip;"
    display_name: Quicksort (second element as pivot)
    min_length: 0
    max_length: 200
    repetitions: 100
    complexity:
      sorted: O(<var>n</var><sup>2</sup>)
      randomized: O(<var>n</var> log <var>n</var>)
      reversed: O(<var>n</var><sup>2</sup>)
  - codename: quick_middle
    brief_name: "&hellip; middle element&hellip;"
    display_name: Quicksort (middle element as pivot)
    min_length: 0
    max_length: 200
    repetitions: 100
    complexity: O(<var>n</var> log <var>n</var>)
  - codename: quick_last
    brief_name: "&hellip; last element&hellip;"
    display_name: Quicksort (last element as pivot)
    min_length: 0
    max_length: 200
    repetitions: 100
    complexity:
      sorted: O(<var>n</var><sup>2</sup>)
      randomized: O(<var>n</var> log <var>n</var>)
      reversed: O(<var>n</var><sup>2</sup>)
  - codename: quick_random
    brief_name: "&hellip; random element&hellip;"
    display_name: Quicksort (random element as pivot)
    min_length: 0
    max_length: 200
    repetitions: 100
    complexity: O(<var>n</var> log <var>n</var>)
  - codename: selection
    brief_name: Selection sort
    display_name: Selection sort
    min_length: 0
    max_length: 200
    repetitions: 100
    complexity: O(<var>n</var><sup>2</sup>)
---
<h1>Plots</h1>

<p>The platform under which the plots were produced was:</p>

<table class="table table-bordered reasonable-width">
  <tr>
    <th>CPU</th>
    <td><a href="http://ark.intel.com/products/58917">Intel Atom N2800</a></td>
  </tr>
  <tr>
    <th>OS</th>
    <td>Windows 7 Professional Service Pack 1</td>
  </tr>
  <tr>
    <th>Python</th>
    <td>3.4.1</td>
  </tr>
  <tr>
    <th>matplotlib</th>
    <td>1.4.0</td>
  </tr>
</table>

{% if page.plots and page.plots != empty %}
<div class="row">
  <div class="col-xs-12 col-sm-10 col-md-8">
    <table class="table table-bordered table-hover">
      <thead>
        <tr>
          <th class="text-center" rowspan="2">Algorithm</th>
          <th class="text-center" colspan="{{ page.plot_kinds.size }}">Complexity</th>
        </tr>
        <tr>
          {% for kind in page.plot_kinds %}
            <th class="text-center">{{ kind }}</th>
          {% endfor %}
        </tr>
      </thead>
      <tbody>
{% for algorithm in page.plots %}
<tr>
  <td><a href="#plots_{{ algorithm.codename }}">{{ algorithm.brief_name }}</a></td>
  {% for kind in page.plot_kinds %}
    <td>{% if algorithm.complexity[kind] %}{{ algorithm.complexity[kind] }}{% else %}{{ algorithm.complexity }}{% endif %}</td>
  {% endfor %}
</tr>
{% endfor %}
      </tbody>
    </table>
  </div>
</div>

{% for algorithm in page.plots %}
<a id="plots_{{ algorithm.codename }}"></a>
<h3>{{ algorithm.display_name }}</h3>
<div class="row">
  {% for kind in page.plot_kinds %}
  {% if algorithm.repetitions[kind] %}
    {% assign repetitions = algorithm.repetitions[kind] %}
  {% else %}
    {% assign repetitions = algorithm.repetitions %}
  {% endif %}
  {% capture stem %}{{ algorithm.codename }}_{{ repetitions }}_{{ kind }}_{{ algorithm.min_length }}_{{ algorithm.max_length }}{% endcapture %}
  <div class="col-xs-12 col-sm-6 col-md-4">
    <div class="thumbnail">
      <a class="thumbnail" href="https://github.com/egor-tensin/sorting_algorithms/raw/master/plots/{{ stem }}.png">
        <img class="img-responsive" src="{{ site.baseurl }}/img/plots/previews/{{ stem }}.jpg"/>
      </a>
      <div class="caption">
        <strong>{{ algorithm.display_name }}</strong><br/>
        <strong>Input:</strong> {{ kind }}<br/>
        <strong>Complexity:</strong> {% if algorithm.complexity[kind] %}{{ algorithm.complexity[kind] }}{% else %}{{ algorithm.complexity }}{% endif %}<br/>
      </div>
    </div>
  </div>
  {% endfor %}
</div>
{% endfor %}

{% else %}
<h3>Sorry, there're no plots yet.</h3>
<hr/>
{% endif %}