Download presentation
Presentation is loading. Please wait.
Published byLiliana Moore Modified over 6 years ago
1
Using Molecular Biology to Teach Computer Science
Runtime Complexity Measuring the Efficiency of Algorthms MARC: Developing Bioinformatics Programs Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist: Learning with Python
2
Essential Computing for Bioinformatics
3
Runtime Complexity - 'Big O' Notation
def fact(n): if (n==0): return 1 else: return n * fact(n - 1) How 'fast' is this function? Can we come up with a more efficient version? How can we measure 'efficiency' Can we compare algorithms independently from a specific implementation, software or hardware? These materials were developed with funding from the US National Institutes of Health grant #2T36 GM to the Pittsburgh Supercomputing Center
4
How about Comparing Actual Runtimes?
Idea: Run each algorithm on same input and compare execution times Must account for differences such as: Hardware Computing Capacity and Efficiency Operating System Efficiency Compiler Optimization and othe PL issues Computer Loads Programmer Skill Want to compare algorithms even before they are implemented!
5
Runtime Complexity - 'Big O' Notation
Big Idea Measure the number of steps taken by the algorithm as an asymptotic function of the size of its input What is a step? How can we measure the size of an input? Answer in both cases: YOU CAN DEFINE THESE! These materials were developed with funding from the US National Institutes of Health grant #2T36 GM to the Pittsburgh Supercomputing Center
6
'Big O' Notation - Factorial Example
A 'step' is a function call to fact The size of an input value n is n itself def fact(n): if (n==0): return 1 else: return n * fact(n - 1) Step 1: Count the number of steps for input n T(0) = 0 T(n) = T(n-1) + 1 = (T(n-2) + 1) + 1 = … = T(n-n) + n = T(0) + n = 0 + n = n Step 2: Find the asymptotic function A.K.A Linear Function T(n) = O(n) These materials were developed with funding from the US National Institutes of Health grant #2T36 GM to the Pittsburgh Supercomputing Center
7
Various Asymptotic Runtimes
8
Some Famous Algorithms and their Runtimes
Sequentially searching a list of n objects O(n) comparisons Binary search within sorted array of n objects O(logn) comparisons QuickSort an array of n objects using comparisons O(nlogn) comparisons Aligning two sequences of length n and m: BLAST, NW, SW, FASTA O(nm) matrix Traveling Salesman Problem O(2n)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.