Sorting Library
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4208180/Cranfield-Logo_Colour-2.png)
Victor OSTERTAG and Alejandro RUIZ RODRIGUEZ
Friday 20th of September 2017
Plan
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3904337/plan.png)
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Comparing the algorithms
Designing the library
Testing the library
Conclusion
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/2917515/-balance-scale-justice-law-judge-judicial.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242588/experiment-md.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/2734526/web-design-icon.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4209990/ferrari-clipart-flag-18.png)
Cranfield University
Intro
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3411292/Office-Client-Female-Dark-icon.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242628/talk-bubble-md.png)
Sort a sequence of integers
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242628/talk-bubble-md.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242651/19083727_talk-bubble-md.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242651/19083727_talk-bubble-md.png)
Return an array with the
sorted values
Our client
I'm not sure about
the size...
If you could give me an
array with the new values,
that'd be great!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3554820/Question_Block.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3573211/options_256.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242681/returns-icon.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/2917515/-balance-scale-justice-law-judge-judicial.png)
Comparing
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242714/2000px-Balance_icon.svg.png)
Insertion VS Bubble
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242761/Pink_Bubble_Body.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3815138/VS.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242763/d15017e8ccae5b83b38159bdb4164612.png)
Bubble
Insertion
SPEED
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242791/d-Red_Race_Car-PNG.png)
Insertion
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242796/trophy1600.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242797/2000px-Equals_sign.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242801/Tetris_J.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242802/Tetris_T.svg.png)
SPACE
Tie
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242807/Tetris_S.svg.png)
The rest
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242833/buddy_brawl_by_eeyorbstudios-d71pkpr.png)
Radix sort is far from ideal
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242842/Sad.png)
We eliminate it from the options
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242853/di4875a4T.png)
The rest
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
SPEED
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242791/d-Red_Race_Car-PNG.png)
Quick Sort
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242796/trophy1600.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242801/Tetris_J.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242802/Tetris_T.svg.png)
SPACE
Heap Sort
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242807/Tetris_S.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242796/trophy1600.png)
Final choice
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4214959/Maine_Small_Business_Portland_Radio_Advertising_Verdict.png)
Heap Sort
Safest choice
Better worst-case speed
Better space complexity
Okay average speed
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242915/lock-icon.png)
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
Insertion VS Heap
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3815138/VS.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242763/d15017e8ccae5b83b38159bdb4164612.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4243044/Coins-PNG-File.png)
As expected, < 30 elements, insertion sort is a bit better
Designing
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242943/bw-design.png)
Working environment
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3720130/diplomats_Advocate_INFJ_workplace_habits.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4243168/Logo_Python.png)
Coded in Python
Pair programming
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4217245/agreement.png)
User friendly
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
Many kinds of inputs:
[12, 15, 9, 5, 6, 75]
"5, 8, 9, 7, 9"
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4243964/command-prompt-png-image-47298.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4243974/drawer-front-download-input-arrow-down-128.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4243989/user-friendly-300x228.png)
File
Command Line
Array & String
User friendly
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
Easy to understand error messages:
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4243989/user-friendly-300x228.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3905543/notification_error.png)
Easy to use
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4217253/source_code1600.png)
from Sorter import Sorter
sorter = Sorter("4,5,8,9,6")
sorter.sort()
print(sorter.getToSort())
print(sorter.getSorted())
print(sorter.getNewPositions())
class Input:
Members:
array // Array created with the user's input
Methods:
void Constructor // Constructor
void checkString // Check if the string is usable
void checkArray // Check if the array is usable
int[] getArray // Get the array
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
Input Class
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
class Sorter:
Members:
toSort // Initial array given by user
sorted // Sorted initial array
newPositions // Auxiliary and optional array
Methods:
void Constructor // Constructor
void heapSort // Sort the initial array
void insertionSort // Sort the initial array
void sort // Use the best sorting algorithm for the situation
void moveDown // Auxiliary function
void swap // Auxiliary function
int[] Getters // Get the array you want
Sorter Class
Tests
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4243195/experiment-md.png)
Functionality Test
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4243195/experiment-md.png)
Tons of different types of arrays
only zeros
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/2734455/cloud_black.png)
Small size
Big size
Only negatives
Medium size
Test the sorting for
each functions
Test if the auxiliary
array is correct
Input test
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4243195/experiment-md.png)
Testing each possible input
Testing each possible wrong input
Performance test
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4243195/experiment-md.png)
1,000 random arrays
(size 1 to 1,000)
1,000 random arrays
(size 10,000 to 11,000)
Code Review
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4244375/5-stars.png)
They liked it!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3634174/Like.png)
(The design, the factorisation, ...)
BUT
Would like more documentation
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4244391/documentation.png)
Conclusion
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3720201/crossed-checkered-flags-icon-4.gif)
Conclusion
Sorting Library
OSTERTAG and RUIZ RODRIGUEZ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/4242564/Pool-Ball-PNG-Transparent-Image.png)
Cranfield University
Good results
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3412210/Facebook_Verified_Account_Logo.png)
Requirements respected
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3600185/charIcon-statistics.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/2731999/wavy-checkered-flag-md.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/520869/images/3554804/red-arrow-png-14.png)
including the
optional part
Structure and algorithms could be improved
Sorting Library
By isvoli
Sorting Library
- 656