/asg/ - Algorithm Study Group

In this thread we discuss our progress reading “Introduction to Algorithms, Fourth Edition”.
We gather every Saturday and Sunday at 12:00 (noon) UTC.

Reading goals for next Saturday:
Sections 4.1 - 4.4 (inclusive)

Did you get through all of this week's content? Let us know if you think we are going too fast or too slowly.

Today's discussion questions:
Come up with an algorithm that solves a problem, naming the problem. Write pseudocode for your algorithm, and perform worst-case analysis on your pseudocode.

You will gain the most by doing the exercises and problems yourself!
Spoilers are not enabled on this board, so please not post solutions for exercises or problems for sections:
4.1 and beyond

Notable changes from the third edition for this week’s content:
> Chapter 4 underwent substantial changes to improve its mathematical foundation and make it more robust and intuitive. The notion of an algorithmic recurrence was introduced, and the topic of ignoring floors and ceilings in recurences was addressed more rigorously. The second case of the master theorem incorporates polylogarithmic factors, and a rigorous proof of a "continuous" version of the master theorem is now provided. We also present the powerful and general Akra-Bazzi method (without proof).

Previous thread:

Attached: asg.jpg (1536x1750, 125.64K)

sorry about the late thread today!!
I didn't have time at all this week to study which is why the goal hasn't changed - we'll resume with our usual pace next week.

bump

new to bread
is it late to join?

no, just read the previous threads to decide where you want to start reading based on what interests you

I have no money to buy this book...

Almost no one here bought it. We got it with this user that provides the high quality stuff by shady means, if you can catch my drift. Stuck around and you might get a sample. You didn't hear this from me.

(he is not sure how this works)

what programming book read before to this?

libgen and z lib have it for free
they have just about any textbook you'd want for free
this book is not a programming book. you just need to understand how to read pseudocode

Assuming no prior knowledge, what understandings and abilities would one acquire after working through this book?

>you just need to understand how to read pseudocode
It seems I'm not the only one who skipped half of the book and just tried to implement every listed algorithm

A thorough and formal understanding of basic algorithms and data structures. If you are going truly blind, then you might consider using a book more apt for beginners parallel to it, with a more friendly language and without much formalism, so you can have a way out when you get stuck.

You ABSOLUTELY do need to know at least one programming language before reading this book, otherwise you will not fully appreciate a bunch of things.
I'd say pick an imperative language of your choice (C or Java for example) and learn it.

>ABSOLUTELY do need to know at least one programming language before reading this book
"know" how well? I messed with TI-BASIC and ROBOTC over a decade ago.

>you might consider using a book more apt for beginners parallel to it, with a more friendly language and without much formalism
book suggestions?

god i hated this course

You don't need to be an expert, but you don't want to have a superficial knowledge. If you learned those things over a decade ago perhaps you should start from scratch with a more common and general purpose programming language.
You should be able to solve problems by yourself and use a book about algorithms to find out all the cool techniques. If you are not able to do programming without any support, you will not be able to understand what all the fuss about _a_particular_algorithm_ is.

>book suggestions
Yes. Skim these and see if you like the writing and overall presentation:
>Algorithm Design Manual by Skiena
Used by many people and places i.e. universities, quite clear and with practical examples of usage.
>Grokking Algorithms by Aditya Bhargava
Recent addition to the list of introductory books, very short, maybe too much. Doesn't hurt to have it easy to open.
>Algorithm Thinking by Daniel Zingaro
It uses C. I thought it was very straightforward, but I didn't finish it. Not very visual.
There's also Sedgewick, but it uses Java and it's more in depth than Skiena.

>and with practical examples of usage
lol
lmao even

Implementing the algorithms is both an important and interesting exercises. Skipping the book isn't always the best unless you're confident in the material you've skipped. But CLRS is more a reference text than a textbook that should be finished front to back.
The book is a reference text for undergrads and working engineers on very common and practical algorithms. These are all problems that have at least one (1) major industry use case. You don't have to know all of them or even many of them to be a successful developer, but it's not an accident that the problems these algorithms solve form the basis of some of the most successful technologies out there.
Think of it this way:
The engineer doesn't need to know every algorithm, but they need to understand the overarching themes, and they need to be comfortable picking up whatever they may not know off the top of their head in a matter of hours.

This book makes brainlets seethe