Muutke küpsiste eelistusi

E-raamat: Data Structures and Algorithms with Scala: A Practitioner's Approach with Emphasis on Functional Programming

  • Formaat - PDF+DRM
  • Hind: 43,21 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

This practically-focused textbook presents a concise tutorial on data structures and algorithms using the object-functional language Scala. The material builds upon the foundation established in the title Programming with Scala: Language Exploration by the same author, which can be treated as a companion text for those less familiar with Scala.

Topics and features: discusses data structures and algorithms in the form of design patterns; covers key topics on arrays, lists, stacks, queues, hash tables, binary trees, sorting, searching, and graphs; describes examples of complete and running applications for each topic; presents a functional approach to implementations for data structures and algorithms (excepting arrays); provides numerous challenge exercises (with solutions), encouraging the reader to take existing solutions and improve upon them; offers insights from the authors extensive industrial experience; includes a glossary, and an appendix supplying an overview of discrete mathematics.









Highlighting the techniques and skills necessary to quickly derive solutions to applied problems, this accessible text will prove invaluable to time-pressured students and professional software engineers.
1 Foundational Components 1(18)
1.1 Arrays
2(4)
1.2 Lists and Vectors
6(2)
1.3 Applied Techniques for Efficient Computation
8(3)
1.3.1 Lazy Evaluation
8(2)
1.3.2 Memoization
10(1)
1.4 Streams
11(5)
1.5 Sliding Windows
16(3)
2 Fundamental Algorithms 19(8)
2.1 Prime Numbers
19(2)
2.2 Decimal to Binary Conversion
21(1)
2.3 Divide and Conquer
22(3)
2.4 Greedy Algorithms
25(2)
3 Arrays 27(8)
3.1 Structure
28(1)
3.2 Typical Implementation
29(3)
3.3 Analysis
32(1)
3.4 Application
32(3)
4 Lists 35(10)
4.1 Structure
36(1)
4.2 Typical Implementation
36(4)
4.3 Analysis
40(1)
4.4 Application
41(4)
5 Stacks 45(6)
5.1 Structure
45(1)
5.2 Typical Implementation
45(3)
5.3 Analysis
48(1)
5.4 Application
48(3)
6 Queues 51(6)
6.1 Structure
51(1)
6.2 Typical Implementation
52(3)
6.3 Analysis
55(1)
6.4 Application
56(1)
7 Hash Tables 57(10)
7.1 Structure and Algorithm
57(1)
7.2 Typical Implementation
58(8)
7.3 Analysis
66(1)
7.4 Application
66(1)
8 Binary Trees 67(10)
8.1 Structure and Algorithms
67(1)
8.1.1 Preorder
68(1)
8.1.2 Inorder
68(1)
8.1.3 Postorder
68(1)
8.2 Typical Implementation
68(5)
8.3 Analysis
73(1)
8.4 Application
73(4)
9 Sorting 77(14)
9.1 Bubble Sort
77(2)
9.1.1 Algorithm
77(1)
9.1.2 Typical Implementation
78(1)
9.2 Selection Sort
79(2)
9.2.1 Algorithm
79(1)
9.2.2 Typical Implementation
80(1)
9.3 Insertion Sort
81(3)
9.3.1 Algorithm
81(1)
9.3.2 Typical Implementation
82(2)
9.4 Merge Sort
84(3)
9.4.1 Algorithm
84(1)
9.4.2 Typical Implementation
84(3)
9.5 Quick Sort
87(2)
9.5.1 Algorithm
87(1)
9.5.2 Typical Implementation
87(2)
9.6 Comparative Analysis
89(1)
9.7 Application
90(1)
10 Searching 91(10)
10.1 Algorithms
92(4)
10.2 Typical Implementation
96(4)
10.3 Analysis
100(1)
10.4 Application
100(1)
11 Graphs 101(20)
11.1 Structure and Algorithms
101(1)
11.2 Typical Implementation
102(3)
11.3 Analysis
105(1)
11.4 Application
105(2)
11.5 Dijkstra's Shortest Path Algorithm
107(14)
A Solutions for Selected Exercises 121(20)
A.1
Chapter 3
121(1)
A.2
Chapter 4
122(3)
A.3
Chapter 5
125(1)
A.4
Chapter 6
126(1)
A.5
Chapter 8
127(4)
A.6
Chapter 9
131(5)
A.7
Chapter 10
136(1)
A.8
Chapter 11
136(5)
B Review of Discrete Mathematical Topics 141(10)
B.1 Logarithms
141(1)
B.2 Floor and Ceiling Functions
142(1)
B.3 Asymptotic Notations
142(1)
B.4 Summations
143(1)
B.5 Fibonacci Sequence
143(1)
B.6 Counting
144(3)
Glossary
147(2)
References
149(2)
Index 151
Bhim P. Upadhyaya is a certified enterprise architect, application architect, software engineer, Java and JEE developer, and big data and Scala enthusiast. In addition to his professional experience as a software architect working for more than 15 companies in the USA, he has more than half a decade of university teaching and research experience, including research work at the worlds largest (non-profit) organization, the United Nations. He has also served as a visiting scholar at the School of Information Technology and Electrical Engineering (ITEE) in the University of Queensland (Brisbane, Australia). He is the founder of EqualInformation, LLC (Sunnyvale, CA, USA), a company that focuses on data synthesis and visualization, web application design and development, enterprise architecture, and integration solutions. He has a master's degree in Software Management, a master's degree in Computer Science, a graduate certificate in Enterprise Architecture, and a bachelor's degree in Electrical and Electronic Engineering, with a specialization in Communications Engineering.

His other publications include the Springer textbook Programming with Scala: Language Exploration.