• About
  • Advertise
  • Privacy & Policy
  • Contact
DevZone
  • Home
  • News
  • Dev
    • All
    • Algorithm
    • Architecture
    • Database
    • Design
    • DevOps
    • IoT
    • Network
    • Test
    • Web
    Phương thức xử lý mảng trong javascript

    Phương thức xử lý mảng trong javascript

    Bảo vệ content, chống copy nội dung web!

    Bảo vệ content, chống copy nội dung web!

    Lưu ý mệnh đề NOT IN trong SQL

    Lưu ý mệnh đề NOT IN trong SQL

    SOLID Principles: Dependency Inversion Principle

    SOLID Principles: Dependency Inversion Principle

    Solid Principles: Interface Segregation Principle

    Solid Principles: Interface Segregation Principle

    Tìm hiểu về composer.json schema (phần 2 – autoload)

    Tìm hiểu về composer.json schema (phần 2 – autoload)

    IPC – Đằng sau sự thành công của Chromium

    IPC – Đằng sau sự thành công của Chromium

    Dựng layout website với CSS Grid Layout

    Dựng layout website với CSS Grid Layout

    Golang cơ bản (p1)

    Golang cơ bản (p1)

    Trending Tags

    • Idea
    • Lifestyle
    No Result
    View All Result
    • Home
    • News
    • Dev
      • All
      • Algorithm
      • Architecture
      • Database
      • Design
      • DevOps
      • IoT
      • Network
      • Test
      • Web
      Phương thức xử lý mảng trong javascript

      Phương thức xử lý mảng trong javascript

      Bảo vệ content, chống copy nội dung web!

      Bảo vệ content, chống copy nội dung web!

      Lưu ý mệnh đề NOT IN trong SQL

      Lưu ý mệnh đề NOT IN trong SQL

      SOLID Principles: Dependency Inversion Principle

      SOLID Principles: Dependency Inversion Principle

      Solid Principles: Interface Segregation Principle

      Solid Principles: Interface Segregation Principle

      Tìm hiểu về composer.json schema (phần 2 – autoload)

      Tìm hiểu về composer.json schema (phần 2 – autoload)

      IPC – Đằng sau sự thành công của Chromium

      IPC – Đằng sau sự thành công của Chromium

      Dựng layout website với CSS Grid Layout

      Dựng layout website với CSS Grid Layout

      Golang cơ bản (p1)

      Golang cơ bản (p1)

      Trending Tags

      • Idea
      • Lifestyle
      No Result
      View All Result
      DEVZONE
      No Result
      View All Result
      Home Dev Algorithm

      Hashtables

      phamanhtuan by phamanhtuan
      December 31, 2019
      in Algorithm
      0
      Hashtables

      Nếu là một lập trình viên PHP, bạn đã bao giờ tự hỏi sao Array của PHP lại khác các ngôn ngữ khác như thế? Sao Array của PHP lại hỗ trợ key dạng string.
      Ví dụ
      $a['test'] = 'Hello Hashtables';

      Tương tự, trong Java ta dùng java.util.HashMap, trong Python ta dùng Dictionary
      Điểm chung của cả 3 là được implement bởi Hashtable.
      Hashtable là một cấu trúc dữ liệu được sử dụng rộng rãi trong các ứng dụng và cả các ngôn ngữ lập trình.
      Để “nhét” key (dạng string) vào trong 1 mảng người ta dùng 1 hash function chuyển key thành số và đưa vào trong mảng.

      Ví dụ: Hash(‘test’) = 1231;
      a[1231] = 'Hello Hashtables';
      Giờ thì dễ hiểu hơn rồi nhỉ!

      Ok bây giờ chúng ta sẽ tìm hiểu cách người ta implement hashtables nhé!

      Đầu tiên sẽ có 2 vấn đề chúng ta cần xử lý:

      • Tính toán hash function
      • Khi hash ra trùng key thì xử lý thế nào?

      Hash function

      Hash function giúp chúng ta chuyển key thành index của mảng, một hàm hash function càng đỡ gây ra sự trùng lặp thì càng tốt. Tuỳ từng bài toán ta sẽ có phương pháp hash khác nhau.
      Ví dụ: trong 1 lớp học có 50 học sinh, ta dùng số điện thoại của họ làm key lưu trữ thông tin, thật tồi tệ nếu bạn dùng 3 số đầu (097, 098 …) để hash.

      Trong 1 mảng có M phần tử, hash function phải đảm bảo cho index rơi vào [0, M – 1].

      Dưới đây là code implement từng kiểu dữ liệu của Java

      Implement Integer, Double, Boolean
      Hash string dùng Horner’s method
      Để giá trị hash luôn là số và nằm từ trong khoảng [0, M – 1]

      Như vậy chúng ta đã nắm được tư tưởng của hash function, lần tới chúng ta sẽ nói về cách xử lý khi hash function cho ra 1 kết quả với 2 giá trị khác nhau.

      (hình ảnh trên bài viết được lấy từ slide khoá học algorithm trên coursera)

      Thả tim (3 lượt thả tim)
      Loading...
      Previous Post

      Builder Pattern

      Next Post

      Xây dựng Email Server với Postfix, Dovecot và Roundcube: #2 - Cài đặt Roundcube trên Centos 7

      phamanhtuan

      phamanhtuan

      Next Post
      Xây dựng Email Server với Postfix, Dovecot và Roundcube: #2 – Cài đặt Roundcube trên Centos 7

      Xây dựng Email Server với Postfix, Dovecot và Roundcube: #2 - Cài đặt Roundcube trên Centos 7

      Leave a Reply Cancel reply

      Your email address will not be published. Required fields are marked *

      Recent News

      Lập trình viên không dùng máy Mac nhiều như người ta đã nghĩ

      Lập trình viên không dùng máy Mac nhiều như người ta đã nghĩ

      July 25, 2020
      Dấu hiệu nhận biết sức khỏe qua liềm móng tay

      Dấu hiệu nhận biết sức khỏe qua liềm móng tay

      June 26, 2020
      Phương thức xử lý mảng trong javascript

      Phương thức xử lý mảng trong javascript

      May 31, 2020
      Lợi ích của việc tập thể dục thường xuyên

      Lợi ích của việc tập thể dục thường xuyên

      May 25, 2020
      DEVZONE

      Browse by Category

      • Algorithm
      • Architecture
      • Database
      • Design
      • Dev
      • DevOps
      • Idea
      • IoT
      • Lifestyle
      • Network
      • News
      • Test
      • Uncategorized
      • Web
      • About
      • Advertise
      • Privacy & Policy
      • Contact

      © 2019 Devzone

      No Result
      View All Result

      © 2019 Devzone