Suggestions
Use up and down arrows to review and enter to select.Please wait while we process your payment
If you don't see it, please check your spam folder. Sometimes it can end up there.
If you don't see it, please check your spam folder. Sometimes it can end up there.
Please wait while we process your payment
By signing up you agree to our terms and privacy policy.
Don’t have an account? Subscribe now
Create Your Account
Sign up for your FREE 7-day trial
Already have an account? Log in
Your Email
Choose Your Plan
Individual
Group Discount
Save over 50% with a SparkNotes PLUS Annual Plan!
Purchasing SparkNotes PLUS for a group?
Get Annual Plans at a discount when you buy 2 or more!
Price
$24.99 $18.74 /subscription + tax
Subtotal $37.48 + tax
Save 25% on 2-49 accounts
Save 30% on 50-99 accounts
Want 100 or more? Contact us for a customized plan.
Your Plan
Payment Details
Payment Summary
SparkNotes Plus
You'll be billed after your free trial ends.
7-Day Free Trial
Not Applicable
Renews May 9, 2024 May 2, 2024
Discounts (applied to next billing)
DUE NOW
US $0.00
SNPLUSROCKS20 | 20% Discount
This is not a valid promo code.
Discount Code (one code per order)
SparkNotes PLUS Annual Plan - Group Discount
Qty: 00
SparkNotes Plus subscription is $4.99/month or $24.99/year as selected above. The free trial period is the first 7 days of your subscription. TO CANCEL YOUR SUBSCRIPTION AND AVOID BEING CHARGED, YOU MUST CANCEL BEFORE THE END OF THE FREE TRIAL PERIOD. You may cancel your subscription on your Subscription and Billing page or contact Customer Support at custserv@bn.com. Your subscription will continue automatically once the free trial period is over. Free trial is available to new customers only.
Choose Your Plan
For the next 7 days, you'll have access to awesome PLUS stuff like AP English test prep, No Fear Shakespeare translations and audio, a note-taking tool, personalized dashboard, & much more!
You’ve successfully purchased a group discount. Your group members can use the joining link below to redeem their group membership. You'll also receive an email with the link.
Members will be prompted to log in or create an account to redeem their group membership.
Thanks for creating a SparkNotes account! Continue to start your free trial.
We're sorry, we could not create your account. SparkNotes PLUS is not available in your country. See what countries we’re in.
There was an error creating your account. Please check your payment details and try again.
Please wait while we process your payment
Your PLUS subscription has expired
Please wait while we process your payment
Please wait while we process your payment
In computer science, the cost of an algorithm, or how much computing power and time it takes to run, is a central concern. As programmers and computer scientists, we find it necessary to be able to compare two algorithms to determine which has a smaller cost.
There are many less-than-adequate ways to measure the cost of an algorithm. The most common of these is to measure the real running time of the algorithm, how many seconds it takes to run. While two algorithms can be compared empirically, there are many drawbacks to and significant difficulties in doing so.
Different implementations of the same algorithm can give different empirical results. Timing results depend on the language used to write the algorithm, the compiler used to compile it, what data structures and methods the programmer used in coding the algorithm, the innate talent of the programmer, etc. Two implementations of the same "algorithm" can yield extremely different timing results.
Platform dependency is also a hurdle for empirical data. Let's say I tell you that algorithm 1 ran in 10 seconds on computer 1 and algorithm 2 ran in 20 seconds on computer 2. Which algorithm is better? If you're able to give me an answer, think again. I haven't told you anything about either machine. One of them could be using a 25Mhz processor while the other could be using a 1000 MHz processor. One of them could be using a RISC chip while the other could be using a CISC chip (if this doesn't make any sense to you, don't worry about it). One of the machines could have many users using it concurrently while the other's resources could be allocated exclusively for this algorithm.
"But wait" you say, "why can't we just run both algorithms on the same machine. Won't this solve the problem?" Yes. It will solve THIS problem. But there are others.
Algorithms do something. That may seem like a simple and dumb statement, but it really isn't. The purpose of an algorithm is to solve some problem, to do something. But how big is this problem? In other words, what is the input size? Certain algorithms may run better on different sized inputs. Let's say we have two sorting algorithms, and we run them both on the same machine. We have algorithm 1 sort 100 data elements, and it takes 100 seconds. We have algorithm 2 sort 100 data elements and it takes 200 seconds. So is algorithm 1 better? Now lets run them both on 1,000 data elements. Algorithm 1 takes 10,000 seconds and algorithm 2 takes 2000 seconds. What happened? Is algorithm 2 now better? As you can see, the ratio of their running times depended on the input size.
It is obvious that in measuring the cost of an algorithm we need a method besides clocking the real running time.
Please wait while we process your payment