Author: Robert Sedgewick
Publisher: Addison-Wesley Professional
Release Date: 2011-02-21
This fourth edition of Robert Sedgewick and Kevin Wayne’s Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing--including fifty algorithms every programmer should know. In this edition, new Java implementations are written in an accessible modular programming style, where all of the code is exposed to the reader and ready to use. The algorithms in this book represent a body of knowledge developed over the last 50 years that has become indispensable, not just for professional programmers and computer science students but for any student with interests in science, mathematics, and engineering, not to mention students who use computation in the liberal arts. The companion web site, algs4.cs.princeton.edu, contains An online synopsis Full Java implementations Test data Exercises and answers Dynamic visualizations Lecture slides Programming assignments with checklists Links to related material The MOOC related to this book is accessible via the "Online Course" link at algs4.cs.princeton.edu. The course offers more than 100 video lecture segments that are integrated with the text, extensive online assessments, and the large-scale discussion forums that have proven so valuable. Offered each fall and spring, this course regularly attracts tens of thousands of registrants. Robert Sedgewick and Kevin Wayne are developing a modern approach to disseminating knowledge that fully embraces technology, enabling people all around the world to discover new ways of learning and teaching. By integrating their textbook, online content, and MOOC, all at the state of the art, they have built a unique resource that greatly expands the breadth and depth of the educational experience.
Author: Dan Gusfield
Publisher: Cambridge University Press
Release Date: 1997-05-28
String algorithms are a traditional area of study in computer science. In recent years their importance has grown dramatically with the huge increase of electronically stored text and of molecular sequence data (DNA or protein sequences) produced by various genome projects. This 1997 book is a general text on computer algorithms for string processing. In addition to pure computer science, the book contains extensive discussions on biological problems that are cast as string problems, and on methods developed to solve them. It emphasises the fundamental ideas and techniques central to today's applications. New approaches to this complex material simplify methods that up to now have been for the specialist alone. With over 400 exercises to reinforce the material and develop additional topics, the book is suitable as a text for graduate or advanced undergraduate students in computer science, computational biology, or bio-informatics. Its discussion of current algorithms and techniques also makes it a reference for professionals.
Author: Ed Finn
Publisher: MIT Press
Release Date: 2017-03-10
The gap between theoretical ideas and messy reality, as seen in Neal Stephenson, Adam Smith, and Star Trek. We depend on—we believe in—algorithms to help us get a ride, choose which book to buy, execute a mathematical proof. It's as if we think of code as a magic spell, an incantation to reveal what we need to know and even what we want. Humans have always believed that certain invocations—the marriage vow, the shaman's curse—do not merely describe the world but make it. Computation casts a cultural shadow that is shaped by this long tradition of magical thinking. In this book, Ed Finn considers how the algorithm—in practical terms, “a method for solving a problem”—has its roots not only in mathematical logic but also in cybernetics, philosophy, and magical thinking. Finn argues that the algorithm deploys concepts from the idealized space of computation in a messy reality, with unpredictable and sometimes fascinating results. Drawing on sources that range from Neal Stephenson's Snow Crash to Diderot's Encyclopédie, from Adam Smith to the Star Trek computer, Finn explores the gap between theoretical ideas and pragmatic instructions. He examines the development of intelligent assistants like Siri, the rise of algorithmic aesthetics at Netflix, Ian Bogost's satiric Facebook game Cow Clicker, and the revolutionary economics of Bitcoin. He describes Google's goal of anticipating our questions, Uber's cartoon maps and black box accounting, and what Facebook tells us about programmable value, among other things. If we want to understand the gap between abstraction and messy reality, Finn argues, we need to build a model of “algorithmic reading” and scholarship that attends to process, spearheading a new experimental humanities.
Author: Safiya Umoja Noble
Publisher: NYU Press
Release Date: 2018-02-20
A revealing look at how negative biases against women of color are embedded in search engine results and algorithms Run a Google search for “black girls”—what will you find? “Big Booty” and other sexually explicit terms are likely to come up as top search terms. But, if you type in “white girls,” the results are radically different. The suggested porn sites and un-moderated discussions about “why black women are so sassy” or “why black women are so angry” presents a disturbing portrait of black womanhood in modern society. In Algorithms of Oppression, Safiya Umoja Noble challenges the idea that search engines like Google offer an equal playing field for all forms of ideas, identities, and activities. Data discrimination is a real social problem; Noble argues that the combination of private interests in promoting certain sites, along with the monopoly status of a relatively small number of Internet search engines, leads to a biased set of search algorithms that privilege whiteness and discriminate against people of color, specifically women of color. Through an analysis of textual and media searches as well as extensive research on paid online advertising, Noble exposes a culture of racism and sexism in the way discoverability is created online. As search engines and their related companies grow in importance—operating as a source for email, a major vehicle for primary and secondary school learning, and beyond—understanding and reversing these disquieting trends and discriminatory practices is of utmost importance. An original, surprising and, at times, disturbing account of bias on the internet, Algorithms of Oppression contributes to our understanding of how racism is created, maintained, and disseminated in the 21st century.
If you are ready to dive into the MapReduce framework for processing large datasets, this practical book takes you step by step through the algorithms and tools you need to build distributed MapReduce applications with Apache Hadoop or Apache Spark. Each chapter provides a recipe for solving a massive computational problem, such as building a recommendation system. You’ll learn how to implement the appropriate MapReduce solution with code that you can use in your projects. Dr. Mahmoud Parsian covers basic design patterns, optimization techniques, and data mining and machine learning solutions for problems in bioinformatics, genomics, statistics, and social network analysis. This book also includes an overview of MapReduce, Hadoop, and Spark. Topics include: Market basket analysis for a large set of transactions Data mining algorithms (K-means, KNN, and Naive Bayes) Using huge genomic data to sequence DNA and RNA Naive Bayes theorem and Markov chains for data and market prediction Recommendation algorithms and pairwise document similarity Linear regression, Cox regression, and Pearson correlation Allelic frequency and mining DNA Social network analysis (recommendation systems, counting triangles, sentiment analysis)
Author: Steven S Skiena
Publisher: Springer Science & Business Media
Release Date: 2009-04-05
This newly expanded and updated second edition of the best-selling classic continues to take the "mystery" out of designing algorithms, and analyzing their efficacy and efficiency. Expanding on the first edition, the book now serves as the primary textbook of choice for algorithm design courses while maintaining its status as the premier practical reference guide to algorithms for programmers, researchers, and students. The reader-friendly Algorithm Design Manual provides straightforward access to combinatorial algorithms technology, stressing design over analysis. The first part, Techniques, provides accessible instruction on methods for designing and analyzing computer algorithms. The second part, Resources, is intended for browsing and reference, and comprises the catalog of algorithmic resources, implementations and an extensive bibliography. NEW to the second edition: • Doubles the tutorial material and exercises over the first edition • Provides full online support for lecturers, and a completely updated and improved website component with lecture slides, audio and video • Contains a unique catalog identifying the 75 algorithmic problems that arise most often in practice, leading the reader down the right path to solve them • Includes several NEW "war stories" relating experiences from real-world applications • Provides up-to-date links leading to the very best algorithm implementations available in C, C++, and Java
Author: S. K. BASU
Publisher: PHI Learning Pvt. Ltd.
Release Date: 2013-04-17
The design of correct and efficient algorithms for problem solving lies at the heart of computer science. This concise text, without being highly specialized, teaches the skills needed to master the essentials of this subject. With clear explanations and engaging writing style, the book places increased emphasis on algorithm design techniques rather than programming in order to develop in the reader the problem-solving skills. The treatment throughout the book is primarily tailored to the curriculum needs of B.Tech. students in computer science and engineering, B.Sc. (Hons.) and M.Sc. students in computer science, and MCA students. The book focuses on the standard algorithm design methods and the concepts are illustrated through representative examples to offer a reader-friendly text. Elementary analysis of time complexities is provided for each example-algorithm. A varied collection of exercises at the end of each chapter serves to reinforce the principles/methods involved. New To This Edition • Additional problems • A new Chapter 14 on Bioinformatics Algorithms • The following new sections: » BSP model (Chapter 0) » Some examples of average complexity calculation (Chapter 1) » Amortization (Chapter 1) » Some more data structures (Chapter 1) » Polynomial multiplication (Chapter 2) » Better-fit heuristic (Chapter 7) » Graph matching (Chapter 9) » Function optimization, neighbourhood annealing and implicit elitism (Chapter 12) • Additional matter in Chapter 15 • Appendix
For many applications a randomized algorithm is either the simplest algorithm available, or the fastest, or both. This tutorial presents the basic concepts in the design and analysis of randomized algorithms. The first part of the book presents tools from probability theory and probabilistic analysis that are recurrent in algorithmic applications. Algorithmic examples are given to illustrate the use of each tool in a concrete setting. In the second part of the book, each of the seven chapters focuses on one important area of application of randomized algorithms: data structures; geometric algorithms; graph algorithms; number theory; enumeration; parallel algorithms; and on-line algorithms. A comprehensive and representative selection of the algorithms in these areas is also given. This book should prove invaluable as a reference for researchers and professional programmers, as well as for students.
Author: Richard Neapolitan
Publisher: Jones & Bartlett Publishers
Release Date: 2010-04-01
Foundations of Algorithms, Fourth Edition offers a well-balanced presentation of algorithm design, complexity analysis of algorithms, and computational complexity. The volume is accessible to mainstream computer science students who have a background in college algebra and discrete structures. To support their approach, the authors present mathematical concepts using standard English and a simpler notation than is found in most texts. A review of essential mathematical concepts is presented in three appendices. The authors also reinforce the explanations with numerous concrete examples to help students grasp theoretical concepts.
What is an algorithm ? Fundamentals of algorithmic problem solving, Important problem types, Fundamental data structures.Fundamentals of the Analysis of Algorithm Efficiency : Analysis framework.Asymptotic notations and basic efficiency classes, Mathematical analysis of nonrecursive and recursive algorithms, Example - Fibonacci numbers.Brute Force : Selection sort and bubble sort, Sequential search and brute-force string matching, Exhaustive search.Divide and Conquer : Mergesort, Quicksorst, Binary search. Binary tree traversals and related properties, Multiplication of large integers and Stressen's matrix multiplication.Decrease and Conquer : Insertion sort, Depth first search, Breadth first search, Topological sorting.Algorithms for generating combinatorial objects.Transform and Conquer : Presorting, Balanced search trees, Heaps and heapsort, Problem reduction.Space and Time Tradeoffs : Sorting by counting, Input enhancement in string matching, Hashing.Dynamic Programming : Computing a binomial coefficient, Warshall's and Floyd's algorithms, The Knapsack problem and memory functions.Greedy Technique : Prim's algorithm, Kruskal's algorithm, Dujkstra's algorithm, Huffman trees.Limitations of Algorithm Power : Lower-bound arguments, Decision trees., P, NP and NP-complete problems.Coping with the Limitations of Algorithm Power : Backtracking, Branch-and-bound, Approximation algorithms for NP-hard problems.
Author: Vijay V. Vazirani
Publisher: Springer Science & Business Media
Release Date: 2013-03-14
Covering the basic techniques used in the latest research work, the author consolidates progress made so far, including some very recent and promising results, and conveys the beauty and excitement of work in the field. He gives clear, lucid explanations of key results and ideas, with intuitive proofs, and provides critical examples and numerous illustrations to help elucidate the algorithms. Many of the results presented have been simplified and new insights provided. Of interest to theoretical computer scientists, operations researchers, and discrete mathematicians.