Algorithms


♡ Coding Demo ♡

                             Content

                                   


Content

About
Books
Elements
Grokking Algorithms
Introduction to Algorithms - CLRS

Languages
Notes
Links




♡ Listen to New York Jazz Lounge - Bar Jazz Masterpieces ♡♡♡ ♡ ♡♡♡

Algorithms

About

by Feroniba Ramin Hassani - GitHub - Twitter - started on C 21.3.2021 in Coswig (Anhalt), Germany
Best C Books of All Time - Extreme C - #9! ♥♡♥ - Amazon $31.19 - Push the limits of what C - and you - can do, with this high-intensity guide to the most advanced capabilities of C!




Books

Which is the best book on algorithms for beginners? - quora.com - Algorithms by Robert Sedgewick + Java - CLRS + Data Structure through C in Depth by S.K. Srivastav - Khan Academy -
Is CLRS a good book for beginners? - quora.com - no ... - Grokking Algorithms - Algorithm Design - edabit.com - yoreoyster.com - algoexpert.io - Algorithm Design by Jon Kleinberg and Éva Sardos - How to Think about Algorithms by Jeff Edmonds - The Algorithm Design Manual by Skiena, C examples - Algorithms Unlocked by Thomas Cormen (one author of CLRS) - Data Structures and Program Design , 1/1994 by Robert L. Kruse and Alexander J. Ryba - reader of any DSA books should be fairly comfortable with writing code, be comfortable with elementary Data-Structures such as Graphs, Trees and Lists, and should have some grasp over elementary concepts of discrete mathematics, and be familiar with basic probability involving Discrete Random Variables -
If CLRS is considered quite a hard book for beginners, what’s another great book you would recommend for beginners? - quora.com - Foundations of Algorithms, 5e by R. Neapolitan - ... - Tardos and Kleinberg is best book
33 Best Algorithms Books for Beginners - bookauthority.org
82 Data Structures and Algorithms - discuss.codechef.com

1 • Grokking Algorithms - Aditya Y. Bhargava - adit.io - 1e 2016 - 11ch 234p
2 • Algorithms Unlocked - Thomas H. Cormen - 1e 2013 - 10ch 212p
3 • How to Think About Algorithms - Jeff Edmonds - YouTube CSE 3101, 2011, 31 Lectures - 1e 2008 - 27ch 438p
4 • Introduction to the Design & Analysis of Algorithms - Anany Levitin - 3e 2012 - 12ch 546p
5 • Algorithm Design - Jon Kleinberg, Éva Sardos - 1e 2006 - 13ch 804p
6 • The Algorithm Design Manual - Steven S. Skiena - 3e 2020 - 21ch 712p
7 • Foundations of Algorithms - Richard E. Neapolitan - 5e 2015 - 12ch 766p
8 • Fundamentals of Computer Algorithms - Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran - 1e 1998 - 15ch 760p
9 • Data Structures and Program Design in C++ - Robert L. Kruse and Alexander J. Ryba - 1e 2000 - 13ch 692p
10 • Introduction to Algorithms "CLRS" - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein - 3e 2009 - 35ch 1230p
11 • Algorithms in C - Robert Sedgewick - 3e 1998 (2006) - 16ch 692p
12 • Mastering Algorithms with C - Kyle Loudon - 1e 1999 - 17ch 691p
13 • Algorithms (in Java) - Robert Sedgewick, Kevin Wayne - 4e 2011 - 6ch 931p
14 • Algorithms in a Nutshell - George T. Heineman, Gary Pollice, Stanley Selkow - 2e 2016 - 12ch 366p




Elements

• first list of all elements: algorithm data_structure pseudocode sorting (selection heap bucket sequential binary merge hash-based) graphs trees queries probability approximation linked_lists
\(\sum_{k=0}^{n}{k^2 = 0^2 + 1^2 + 2^2 + 3^2 = 14}\) if n = 3 (LaTeX inline mode) - Using the summation symbol - summation symbol (sigma) - never used by itself - bottom always index, here k=0, could also be 1 or -10 etc. - top symbol shows end of summation, here n - could also be 10 or infinity \(\infty\) etc. -
$$\sum_{k=0}^{n}{k^2 = 0^2 + 1^2 + 2^2 + 3^2 = 14}$$ if n = 3 (LaTeX display mode)
Example 2: $$\sum_{n=0}^{4}{\frac{(-1)^n}{1+n} = \frac{(-1)^0}{1+0} + \frac{(-1)^1}{1+1} + \frac{(-1)^2}{1+2} + \frac{(-1)^3}{1+3} + \frac{(-1)^4}{1+4} = \frac{1}{1} + \frac{-1}{2} + \frac{1}{3} + \frac{-1}{4} + \frac{1}{5} = ... = \frac{47}{60}}$$
\(\int^b_a f(x)\,dx\) (LaTeX inline mode) - Understanding Integral Notation - (LaTeX display mode:) $$\int^b_a f(x)\,dx$$




Grokking Algorithms

Grokking Algorithms on Amazon, US $44.99 (including eBook) - by Aditya Y. Bhargava - adit.io - 1st edition, © 2016 by Manning Publications Co., all rights reserved - 11 chapters, 234 pages - Errata

contents
preface - 1 Introduction to algorithms - Binary search - Big O notation - Recap - 2 Selection sort - How memory works - Arrays and linked lists - Recap - 3 Recursion - Base case and recursive case - The stack - Recap - 4 Quicksort ... - 5 Hash tables ... - 6 Breadth-first search - 7 Dijkstra's algorithm ... - 8 Greedy algorithms ... - 9 Dynamic programming - The knapsack problem - Longest common substring - Recap - 10 K-nearest neighbors - ... - Introduction to machine learning - Recap - 11 Where to go next - Trees - Inverted indexes - The Fourier transform - Parallel algorithms - MapReduce - Bloom filters and HyperLogLog - The SHA algorithms - Locality-sensitive hashing - Diffie-Hellman key exchange - Linear programming - Epilogue - answers to exercises - index p235-238 - back cover

preface
xiii - started programming as a hobby - Visual Basic 6 for Dummies - first algorithm were impenetrable - with first good algorithms professor realized how simple and elegant these ideas were - as a visual learner, written on functional programming, Git, machine learning, and concurrency - started out as a mediocre writer - easy to gloss over the hard stuff - coworker complained: still don't understand your writing - Maqnning asked to write illustrated book - aim: explain hard topics well, write easy-to-read algorithms book - acknowledgments to many, and to CLRS, Knuth, Strang - ...

about this book
xv - book easy to follow, avoids big leaps of thought (Gedankensprünge) - reinforced with exercises - author leads with examples, so recall is easier, visual, book full of images - not all, but practical algorithms, good foundation for more complex topics

Roadmap
ch1-11 ...

How to use this book
order of content carfully designed - feel free to jump ahead - still chapters build on each other - strongly recommend executing example codes, download from GitHub - do the exercises in this book, they are short, usually just a minute or two, sometimes 5 to 10, they will help you check your thinking, so you’ll know when you’re off track before you’ve gone too far
Who should read this book:
who knows basics of coding, wants to understand algorithms - • Hobbyist coders • Coding boot camp students • Computer science grads looking for a refresher • Physics/math/other grads who are interested in programming
Code conventions and downloads:
all codes in python 2.7, written in fixed width font with <kbd> (inline), or with <pre> (auto-new line):

fixed width font
and again auto-new line - code annotations accompany some of the listings, highlighting important concepts - you learn best when you really enjoy learning - so have fun, and run the code samples!
About the author: ...
Author online: ...

ch1 - introduction to algorithms

p1 - In this chapter • foundation for rest of book • write first search algorithm (binary search) • learn how to talk about running time of an algorithm (Big O notation) • you’re introduced to common technique for designing algorithms (recursion)

Introduction
algorithm is set of instructions to accomplish a task - every piece of code could be called algorithm ... - author chose only fast algorithms or/and those solving interesting problems for book - some highlights: ... - will always describe algorithm, give example, and running time in Big O notation, explore what other types of problems could be solved by same algorithm - implementation of every algorithm in this book probably available in favorite language - but must understand trade-offs (Austausch), for examplev use merge sort or quicksort, use array or list? Usind different data structures makes difference

What you’ll learn about solving problems
techniques out of grasp, like AI system following user - recommendations system k-nearest neighbours - NP-complete problems how to identify problems with algorithms with approximate answers - by end of book will know some of most used algorithms - then use new knowledge learn more specific algorithms for AI, databases etc. - or take bigger challenge at work

What you need to know
p3 - basic algebra - f(x)=x·2 - f(5)=10 - that is sufficient - know programming language, book uses Python, great for beginners - Ruby or other also fine

Binary search
If searching in phonebook name with K - start at beginning flipping pages - better start in middle - or word in dictionary with o - again start middle - or if Facebook searches - search problem, solved with binary search - input is sorted list - binary search returns position or null if no element -
p4 - guess number between 1-100 - counting 1 2 3 is a bad approach, simple search, maybe stupid search better approach - better start 50, if to low 75 etc., always half - that is binary search - 100 in max. 7 steps to only one remaining possibility: 100 50 25 13 7 4 2 1 - 240k 120k 60k 30k 15k 7.5k 3,750 1875 938 469 235 118 + 59 30 15 8 4 2 1 = 11 steps more than 7 = 18 steps - p7 - any list of n will take log2 n steps in wost case - where simple search takes n steps, stupid s. random steps - Logarithms explained: ... - flip of exponentials - 102=100 ⟷ log10100=2 --- 103=1000 ⟷ log101000=3 --- 23=8 ⟷ log28=3 etc. ... - in book running time in Big O notation, log always means log2
p8 - binary search only if list is in sorted order, names alphabetic etc. - what happens if not? -



Vocabulary
curate - ... - xv
gloss over - beschönigen, bemänteln, glossieren, glanzpressen - xiii
grok - begreifen, kapieren, schnallen ... - xiii
impenetrable - undurchdringbar, undurchdringlich, unzugänglich ... - xiii
leaps of thought - Gedankensprünge - xv
lest - damit nicht, dass nicht - xviii
mediocre writer - mittelmäßig, zweitklassig, niveaulos, unbedeutend - xiii
reinforce - verstärken, bekräftigen ... - xv
assumption - Annahme, Vermutung, Unterstellung ... - xv
savor - verkosten, genießen, etw. auf der Zunge vergehen lassen ... - xiii
trade-off - Ausgleich, Abstrich, Austausch ... - p2




Introduction to Algorithms - CLRS - 3e

Introduction to Algorithms "CLRS" - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein - 3e 2009 - 35ch 1230p

Preface

xiii - algorithms before computers were there - each ch presents an algorithm ... - presented in English and pseudocode - book 244 figures how alg works - analysis of running times - ... book suitable for self-study - ...

To the teacher
...


To the student
xiv - ... - prerequisites: • some programming experience - recursive procedures - simple data structures such as arrays andlinked lists • facility with mathematical proofs, especially proofs by mathematical induction - elementary calculus - beyond that, Parts I and VIII of this book teach you all the mathematical techniques you will need - solutions for some exercises -

...




1 • Linux Ubuntu (Mac Windows etc.) install and adjust

#include <stdio.h>

int main(void) {
    printf("hello, world\n");
   
    return 0;
}

... more coming soon ...




ch1 to ch25

p... - ... coming soon ♡ ♥ ♡ ...




ch25 - basic examples - small programs of all kinds

p...-... - ...

Next steps:
Raspberry Pi - Arduino - Linux analysis - build our own operating system, language, servers, network, AT SS - build L community international, online forum, political party with laws assuring peace and happiness for everyone ♡ ♥ ♡

End of book :-))) ♡ ♥ ♡




Languages

Binary Assembly C Bash Java Python JavaScript Perl Forth Tcl HTML CSS CoffeeScript CoffeeCup ...




Path to Programming and Algorithms

(read bottom to top)
• starting machine learning and deep learning - AI
• starting with algorithms and math - R (read) and workout best books
• switching from OSX Macbook to Linux Ubuntu and Kali
• ...
• leaving LR (learning) Python for LR C
• LR (learning) HTML CSS JS to build own websites like this one




Ubuntu

Ubuntu version 20.10 - upgrade to 21.04 - itsfoss.com - after version is not beta but stable - Updated: Ubuntu 21.04 Release Date & New Features - omgubuntu.co.uk
• Additional installations: Atom ...




Notes

Machines for world knowledge 300 Exabytes, ship SH and spaceship SS - Computers should do what humans want them to do - input output - keyboard pad touchscreen cam mic controller etc. - based binary - ASM and C needed - terminal - IN HTML CSS JS WASM - Arduino Rapberry PI etc. - Linux - games animation sounddesign graficdesign - art FP MP WR - O MG

Chrome: Ctrl F5 > reload tab




Links

IDL Webdesign - HTML Workshop




Sessions

Session 1 • Thu 2021-3-18 Coswig (Anhalt) 23:15-3:40 WR cfo.html - start ♡♡♡