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 December 18, 2023 December 11, 2023
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.
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
Note: Please refer to the "Searching" SparkNote if you have not learned about the linear search (click here) and binary search (click here). Only a brief review will be offered here.
Searching, one of the most fundamental problems in computer science, is well accomplished with recursive techniques. We will look at two algorithms for searching: linear search and binary search.
Linear search operates by looking sequentially through data, comparing the current element to the search element. If they are the same, the search has found what it's looking for. If they're different, it moves on to the next data element and repeats. If after all the data has been examined the search element has not been found, it does not exist in the data being searched.
Thinking about this from a recursive standpoint, we compare the first element to the search element. If they're the same, great. Otherwise, we return whether the search element exists in the rest of the string. Linear search can work on any type of data. Since we just finished looking at strings, we'll use characters as our data type
Easy, right? Let's move onto binary search.
Binary search is an inherently recursive algorithm: we can implement iteratively, but it makes more sense algorithmicly to do it recursively (though for certain implementations you might choose to do it iteratively for efficiency reasons). Binary search works by splitting up a sorted data set into two parts. We examine the data element at the split to see which side the data we're searching for would be in. Once we know which side the data would be in, we can eliminate all of the data elements in the other half. Then we repeat the process with our smaller data set. Each time we repeat, we throw away half of the data; this makes for a relatively efficient search (O(log(n))).
Let's search a sorted array of integers. We'll return the index into the array where the searched for data exists, or an invalid index if the data isn't found.
Of course, binary search can be done iteratively as mentioned:
But intuitively it makes more sense recursively.
Please wait while we process your payment