Kategorier Priser Virksomhedsløsninger
Free Textbook

Java 18: Algorithms and data structures

Software Development

0 Anmeldelser
203
Language:  English
The book focuses on algorithms written in Java and presents several classic algorithms.
Download free PDF textbooks or read online. Less than 15% adverts
Premium abonnement gratis i de første 30 dage, derefter $5.99/mnd
Beskrivelse
Indhold

The book focuses on algorithms written in Java and presents several classic algorithms, but the primary goal is to introduce algorithm analysis, and then allowing the reader to be able to compare and evaluate the complexity of algorithms. In addition, the book treats the classic data structures such as lists and trees and shows how these data structures can be implemented in Java.

Click here to download the source files from this book.

  • Foreword
  1. Introduction
  2. The concept of algorithms 
    1. Examples of algorithms 
    2. Exercise 1: A difference series 
    3. Recursion 
    4. Exercise 2: A palindrome 
    5. Search 
    6. The Fibonacci numbers 
    7. Euclid’s algorithm 
    8. Sum of digits 
    9. Prime numbers 
    10. Sweep 
    11. Exercise 3: Sweep a list 
  3. Algorithm analysis 
    1. The complexity of linear search 
    2. The complexity of binary search 
    3. More examples 
    4. Definition of complexities 
    5. Merge 
    6. Time complexity in practice 
    7. Exercise 4: Calculating primes 
    8. Memory complexity 
    9. The median 
    10. Exercise 5: Measurements for the median 
    11. Problem 1: Max contiguous sum 
    12. Correctness of algorithms 
  4. Sorting 
    1. Bubble sort 
    2. Selection sort 
    3. Insertion sort 
    4. Shell sort 
    5. Merge sort 
    6. Quick sort 
    7. Problem 2: The sorting methods
  5. Data structures 
    1. A Buffer
    2. Exercise 6: Test Buffer
    3. ArrayList 
    4. Exercise 7: Test ArrayList 
  6. Linked lists 
    1. Single linked lists 
    2. Exercise 8: Test SingleList 
    3. Double linked lists 
    4. Exercise 9: Test DoubleList 
    5. Problem 3: A circular list 
    6. An ordered linked lists 
    7. Exercise 10: Double linked lists
    8. A stack 
    9. Exercise 11: A stack of fixed size 
    10. A queue 
    11. Exercise 12: A priority queue 
  7. Trees 
    1. Binary trees 
    2. Exercise 13: A general binary tree 
    3. Binary search trees 
    4. Exercise 14: A binary search tree 
    5. Exercise 15: LevelOrder 
    6. Balanced binary trees 
    7. An AVL tree 
    8. Exercise 16: Test the AVLTree 
  8. Heap 
    1. Problem 4: A TreeHeap 
    2. The class Heap 
    3. Heap sort 
    4. A priority queue 
    5. Exercise 17: Test the class Heap 
    6. Problem 5: Radix-sort 
  9. Hashing 
    1. The class Hashing 
    2. Exercise 18: Test hashing 
    3. Problem 6: Quadratic probing 
  10. Sets 
    1. Exercise 19: The set classes 
  11. Maps 
    1. Exercise 20: The map classes
  12. A final example 
    1. A test program 

About the Author

Poul Klausen

Poul Klausen er uddannet cand. scient. i matematik fra Aarhus Universitet med speciale i algebraisk topologi. Efter universitetet og et efterfølgende pædagogikum har Poul Klausen primært arbejdet som underviser og det især inden for it uddannelser og gennem de sidste mange år som underviser på datamatiker uddannelsen. Her har han især undervist i programmering og har i den sammenhæng både beskæftiget sig med og undervist i en række forskellige programmeringssprog og herunder også C#. Ud over programmering har Poul Klausen beskæftiget sig med andre emner inden for systemudvikling, hvor specielt kan nævnes design, modellering og databaser. Han har desuden undervist i mere tekniske fag som operativsystemer og computer netværk.

Ud over undervisning har Poul Klausen arbejdet i det private som softwareudvikler dels i perioder som fuldtids systemudvikler og dels parallelt med jobbet som underviser. Opgaverne har været mange og specielt kan nævnes udvikling af administrative løsninger og en række web relaterede produkter. I de sidste år har Poul Klausen i forbindelse med praktisk systemudvikling primært beskæftiget sig med business intelligence, og i relation hertil har han primært interesseret sig for data mining.