楼主: ReneeBK
3158 22

【Debasish Ray Chawdhuri】Java 9 Data Structures Algorithms [推广有奖]

  • 1关注
  • 62粉丝

VIP

已卖:4895份资源

学术权威

14%

还不是VIP/贵宾

-

TA的文库  其他...

R资源总汇

Panel Data Analysis

Experimental Design

威望
1
论坛币
49629 个
通用积分
55.4465
学术水平
370 点
热心指数
273 点
信用等级
335 点
经验
57805 点
帖子
4005
精华
21
在线时间
582 小时
注册时间
2005-5-8
最后登录
2023-11-26

楼主
ReneeBK 发表于 2017-7-1 21:58:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

本帖隐藏的内容

Java 9 Data Structures and Algorithms.pdf (4.25 MB, 需要: 5 个论坛币)

  1. Java 9 Data Structures and Algorithms
  2. by Debasish Ray Chawdhuri
  3. pages 页数:( 340)
  4. Release 出版日期: Packt Publishing (28 April 2017)
  5. Language 语言: English
  6. ISBN-10 书号 1785889346
  7. ISBN-13 书号: 9781785889349
  8. B01KM5RLGS
  9. Key Features
  10. This book provides complete coverage of reactive and functional data structures
  11. Based on the latest version of Java 9, this book illustrates the impact of new features on data structures
  12. Gain exposure to important concepts such as Big-O Notation and Dynamic Programming
  13. Book Description
  14. Java 9 Data Structures and Algorithms covers classical, functional, and reactive data structures, giving you the ability to understand computational complexity, solve problems, and write efficient code. This book is based on the Zero Bug Bounce milestone of Java 9.

  15. We start off with the basics of algorithms and data structures, helping you understand the fundamentals and measure complexity. From here, we introduce you to concepts such as arrays, linked lists, as well as abstract data types such as stacks and queues. Next, we’ll take you through the basics of functional programming while making sure you get used to thinking recursively.

  16. We provide plenty of examples along the way to help you understand each concept. You will get the also get a clear picture of reactive programming, binary searches, sorting, search trees, undirected graphs, and a whole lot more!

  17. What you will learn
  18. Understand the fundamentals of algorithms, data structures, and measurement of complexity
  19. Find out what general purpose data structures are, including arrays, linked lists, double ended linked lists, and circular lists
  20. Get a grasp on the basics of abstract data types—stack, queue, and double ended queue
  21. See how to use recursive functions and immutability while understanding and in terms of recursion
  22. Handle reactive programming and its related data structures
  23. Use binary search, sorting, and efficient sorting—quicksort and merge sort
  24. Work with the important concept of trees and list all nodes of the tree, traversal of tree, search trees, and balanced search trees
  25. Apply advanced general purpose data structures, priority queue-based sorting, and random access immutable linked lists
  26. Gain a better understanding of the concept of graphs, directed and undirected graphs, undirected trees, and much more
复制代码



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Structures Algorithms Structure Algorithm struct

本帖被以下文库推荐

沙发
ReneeBK(未真实交易用户) 发表于 2017-7-1 21:59:06
Data Structures and Algorithms in Java 6th Edition.2014
2 个回复 - 126 次查看Data Structures and Algorithms in Java 6th Edition.20142017-6-5 05:35 - liangxiao1111 - Forum

Java 编程】 Problem Solving in Data Structures & Algorithms Using Java
24 个回复 - 598 次查看Problem Solving in Data Structures & Algorithms Using Java: The Ultimate Guide to Programming by Hemant Jain (Author) This book is about the usage of Data Structures and Algorithms in comput ...2017-1-23 05:40 - cmwei333 - Forum

Java 的数据结构与运算】 Data Structures and Algorithms Made Easy in Java (2e)
10 个回复 - 526 次查看2017-1-15 12:17 - cmwei333 - Forum

Data Structures and Algorithms Made Easy in Java
4 个回复 - 239 次查看内容隐藏需要,请点击进去查看2016-9-18 09:26 - Nicolle - Forum

AI Algorithms, Data Structures & Idioms in Prolog, Lisp, and Java 2008
3 个回复 - 381 次查看
  • AI Algorithms, Data Structures, and Idioms in Prolog, Lisp, and Java
  • 464 pages
  • Publisher: Addison Wesley; 6 edition (September 4, 2008)
  • Language: English
  • ISBN-10: 013607047 ...2015-7-11 20:59 - Nicolle - Forum
    Data Structures and Algorithms in Java (2nd Edition)
    13 个回复 - 297 次查看**** 本内容被作者隐藏 ****2016-9-18 10:35 - Nicolle - Forum

    分享书籍 Data Structures and Algorithms in Java
    1 个回复 - 587 次查看Data Structures and Algorithms in Java 6th ed/5ed by: Michael T. Goodrich Roberto Tamassia Michael H. Goldwasser2015-7-29 20:57 - yisun - 量化投资

    A Practical Guide to Data Structures and Algorithms using Java
    1 个回复 - 468 次查看A Practical Guide to Data Structures and Algorithms using Java (Chapman & Hall/CRC Applied Algorithms and Data Structures series) 1056 pages Publisher: Chapman and Hall/CRC (August 23, 2007) Lan ...2015-7-11 20:39 - Nicolle - Forum

    [求书]Data Structures and Algorithms Using Java
    9 个回复 - 1461 次查看
  • Data Structures and Algorithms Using Java
  • By: William McAllister
  • Publisher: Jones & Bartlett Learning
  • Pub. Date: October 25, 2010
  • Web ISBN-13: 978-1-4496-1286-3
  • Pages in Print ...2015-6-17 10:20 - Nicolle - Forum
    Data Structures and Algorithms with JavaScript
    0 个回复 - 800 次查看As an experienced JavaScript developer moving to server-side programming, you need to implement classic data structures and algorithms associated with conventional object-oriented languages like C# an ...2015-6-28 09:27 - nelsoncwlee - 量化投资


  • 藤椅
    ReneeBK(未真实交易用户) 发表于 2017-7-1 22:00:38
    1. Insertion at the beginning
    2. Inserting an element at the beginning of a list is very similar to appending it at the end. The only difference is that you need to update the first reference instead of the last reference:

    3.     public Node<E> appendFirst(E value) {
    4.         Node node = getNewNode();
    5.         node.value = value;
    6.         node.next = first;
    7.         first = node;
    8.         if (length == 0)
    9.             last = node;
    10.         length++;
    11.         return node;
    12.     }
    复制代码

    板凳
    ReneeBK(未真实交易用户) 发表于 2017-7-1 22:01:39
    1. Insertion at the beginning or at the end
    2. Insertion at the beginning is very similar to that of a singly linked list, except that we must now update the next node's reference for its previous node. The node being inserted does not have a previous node in this case, so nothing needs to be done:

    3.     public Node<E> appendFirst(E value) {
    4.         Node<E> node = super.appendFirst(value);
    5.         if (first.next != null)
    6.             ((DoublyLinkedNode<E>) first.next).prev = (DoublyLinkedNode<E>) first;
    7.         return node;
    8.     }
    复制代码

    报纸
    ReneeBK(未真实交易用户) 发表于 2017-7-1 22:03:31
    1. Variable-sized stack using a linked list
    2. The problem with an array-based implementation is that since arrays are fixed in size, the stacks cannot grow beyond a fixed-size. To resolve this, we have to do what we did to fix the same problem for an array, that is, use a linked list instead. We start such an implementation with the following bare bone class. The linked list will store the values. Instead of assigning a new linked list to it, we do so using an overridable method getNewLinkedList(). This will be useful in the class that extends from this one:

    3. public class StackImplLinkedList<E> implements Stack<E> {
    4.   protected LinkedList<E> list = getNewLinkedList();

    5.   protected LinkedList<E> getNewLinkedList(){
    6.     return new LinkedList<>();
    7.   }
    8. }
    复制代码

    地板
    ReneeBK(未真实交易用户) 发表于 2017-7-1 22:04:53
    1. Recursive algorithms

    2. As I have already pointed out, recursive algorithms are a different way of thinking about solving a problem. For example, say our problem is to write a program that, given a positive integer n, returns the sum of numbers from zero to n. The known imperative way of writing it is simple:

    3. public int sum_upto(int n){
    4.   int sum=0;
    5.   for(int i=0;i<=n;i++){
    6.     sum+=i;
    7.   }
    8.   return sum;
    9. }
    10. The following would be the functional version of the problem:

    11. public int sum_upto_functional(int n){
    12.   return n==0?0:n+sum_upto_functional(n-1);
    13. }
    14. That's it–just a one-liner! This is probably nothing new to Java programmers, as they do understand recursive functions.
    复制代码

    7
    ReneeBK(未真实交易用户) 发表于 2017-7-1 22:07:26
    1. Implementing a functional interface with lambda
    2. So, what happens if we have a functional interface? We can provide an inline implementation of it using a cool syntax called lambda, as follows:

    3. SampleFunctionalInterface sfi = (x)->x+1;
    4. int y = sfi.modify(1);
    5. Take note of the parentheses and the arrow sign. The parentheses contain all the parameters. The types of parameters are not specified because they are already specified in the interface method. There can be zero or more parameters.

    6. There are two kinds of lambda syntax–one that has an expression as the body and one that has one or more steps as the body. These lambdas look a bit different from each other. A lambda that is implemented as a one liner looks like the one we just saw. This is called an expression syntax. The expression syntax can be used if the lambda expression is a one liner. For multi-line code, we use the block syntax as shown below:

    7. Thread t = new Thread(()->{for(int i=0;i<500;i++) System.out.println(i);});
    8. One can use block syntax for functions that return a value as well, especially when using multiple lines of code. In that case, one just needs to use a return statement to return a value.
    复制代码

    8
    ReneeBK(未真实交易用户) 发表于 2017-7-1 22:10:29
    1. The forEach method for a linked list
    2. The forEach() method on a linked list would do something for each element of the list. This something would be passed as a lambda. For this purpose, we will first create a functional interface that consumes one parameter but does not return anything:

    3. @FunctionalInterface
    4. public interface OneArgumentStatement<E> {
    5.   void doSomething(E argument);
    6. }
    7. With this interface available, we will define the forEach() method for a list, as follows:

    8. public class LinkedList<E> {


    9.   public static class EmptyList<E> extends LinkedList<E>{
    10.   …

    11.   @Override
    12.   public void forEach(OneArgumentStatement<E> processor) {}
    13.   }

    14.   …

    15.   public void forEach(OneArgumentStatement<E> processor){
    16.     processor.doSomething(head());
    17.     tail().forEach(processor);
    18.   }
    19. }
    复制代码

    9
    ReneeBK(未真实交易用户) 发表于 2017-7-1 22:19:35
    1. linear search. The following demonstrates a linear search algorithm in an array:

    2.     public static <E, F extends E> int linearSearch(E[] values,
    3.     valueToLookup) {
    4.         for (int i = 0; i < values.length; i++) {
    5.             if (values[i].equals(valueToLookup)) {
    6.                 return i;
    7.             }
    8.         }
    9.         return -1;
    10.     }
    复制代码

    10
    yazxf(真实交易用户) 发表于 2017-7-1 22:39:00
    谢谢你的书!

    您需要登录后才可以回帖 登录 | 我要注册

    本版微信群
    加好友,备注jltj
    拉您入交流群
    GMT+8, 2025-12-5 17:52