Trang Chủ Tài chính Cá nhân ĐốI phó với sự phức tạp của thuật toán - những con vú

ĐốI phó với sự phức tạp của thuật toán - những con vú

Video: Giải thích hiện tượng Lỗ đen bằng kiến thức vật lí phổ thông 2025

Video: Giải thích hiện tượng Lỗ đen bằng kiến thức vật lí phổ thông 2025
Anonim

Một phần của các thuật toán đối với những người mới bắt đầu Cheat Sheet

Bạn đã biết rằng các thuật toán rất phức tạp. Tuy nhiên, bạn cần phải biết một thuật toán phức tạp phức tạp như thế nào bởi vì một thuật toán phức tạp hơn là, nó cần nhiều thời gian hơn để chạy. Bảng dưới đây giúp bạn hiểu mức độ phức tạp khác nhau được trình bày theo thứ tự thời gian chạy (từ nhanh nhất đến chậm nhất).

Độ phức tạp Mô tả
Độ phức tạp liên tục O (1) Cung cấp thời gian thực hiện không thay đổi, cho dù bạn nhập vào bao nhiêu. Mỗi đầu vào yêu cầu một đơn vị thời gian thực hiện.
Độ phức tạp logarithmic O (log n) Số lượng các hoạt động phát triển ở tốc độ chậm hơn so với đầu vào, làm cho thuật toán kém hiệu quả hơn với các đầu vào nhỏ và hiệu quả hơn với các thuật toán lớn hơn. Một thuật toán điển hình của lớp này là tìm kiếm nhị phân.
Sự phức tạp tuyến tính O (n) Các hoạt động phát triển với đầu vào theo tỉ lệ 1: 1. Một thuật toán điển hình là lặp lại, khi bạn quét đầu vào một lần và áp dụng một thao tác cho mỗi phần tử của nó.
Độ phức tạp tuyến tính O (n log n) Tính phức tạp là sự kết hợp giữa sự phức tạp logarithmic và tuyến tính. Nó là điển hình của một số thuật toán thông minh được sử dụng để đặt hàng dữ liệu, chẳng hạn như Mergesortsort, Heapsort và Quicksort.
Sự phức tạp gấp đôi O (n 2 ) Các hoạt động phát triển như một hình vuông của số lượng đầu vào. Khi bạn có một lần lặp trong một lần lặp lại (được gọi là lặp lồng nhau trong khoa học máy tính), bạn có sự phức tạp bậc hai. Ví dụ, bạn có một danh sách các tên và, để tìm những cái giống nhau nhất, bạn so sánh mỗi tên với tất cả các tên khác. Một số thuật toán đặt hàng ít hiệu quả hơn trình bày sự phức tạp như vậy: sắp xếp bong bóng, sắp xếp lựa chọn và sắp xếp chèn. Mức độ phức tạp này có nghĩa là các thuật toán của bạn có thể chạy hàng giờ hoặc thậm chí vài ngày trước khi tìm ra giải pháp.
Sự phức tạp của khối O (n 3 ) Các hoạt động phát triển thậm chí còn nhanh hơn sự phức tạp bậc hai bởi vì bây giờ bạn có nhiều lần lặp lồng nhau. Khi một thuật toán có thứ tự phức tạp này và bạn cần phải xử lý số lượng khiêm tốn của dữ liệu (100, 000 phần tử), thuật toán của bạn có thể chạy trong nhiều năm. Khi bạn có một số hoạt động mà là một sức mạnh của đầu vào, nó là phổ biến để tham khảo các thuật toán như chạy trong thời gian đa thức.
Sự phức tạp hàm mũ O (2 n ) Thuật toán mất hai lần số lần thực hiện trước cho mỗi phần tử mới được thêm vào. Khi một thuật toán có sự phức tạp này, ngay cả những vấn đề nhỏ có thể mất mãi mãi. Nhiều thuật toán tìm kiếm toàn diện có sự phức tạp hàm mũ. Tuy nhiên, ví dụ điển hình cho mức độ phức tạp này là việc tính toán các số Fibonacci.
Sự phức tạp nhân tố O (n!) Thuật toán này cho thấy một cơn ác mộng thực sự phức tạp vì có nhiều sự kết hợp có thể giữa các phần tử. Chỉ cần tưởng tượng: Nếu đầu vào của bạn là 100 đối tượng, và một thao tác trên máy tính của bạn mất 10 -6 999 giây (tốc độ hợp lý cho mỗi máy tính hiện nay), bạn sẽ cần khoảng 10 140 năm để hoàn thành nhiệm vụ thành công (một khoảng thời gian không thể thực hiện vì tuổi của vũ trụ được ước tính là 10 14 năm). Một vấn đề phức tạp nổi bật giai đoạn là vấn đề người bán hàng đi du lịch, trong đó một nhân viên bán hàng phải tìm ra con đường ngắn nhất để thăm nhiều thành phố và trở lại thành phố khởi đầu.
ĐốI phó với sự phức tạp của thuật toán - những con vú

Lựa chọn của người biên tập

Web Marketing: Loại bỏ đăng ký và đăng nhập để đảm bảo khả năng hiển thị - núm vú

Web Marketing: Loại bỏ đăng ký và đăng nhập để đảm bảo khả năng hiển thị - núm vú

Tiếp thị web, một cách để đảm bảo khả năng hiển thị là để loại bỏ đăng ký và các hình thức đăng nhập. Khách truy cập thường phải hoàn thành các biểu mẫu này trước khi họ có thể tải xuống một số loại nội dung cao cấp, chẳng hạn như giấy trắng hoặc trước khi họ có thể đọc một số bài viết trên trang web. Các công ty đã đưa chúng vào vị trí vì họ muốn dẫn ...

Web Marketing: Làm thế nào để Tránh Duplicate Content - núm vú

Web Marketing: Làm thế nào để Tránh Duplicate Content - núm vú

Duplicate nội dung cần tránh trong web tiếp thị và Google cung cấp công cụ để phát hiện thông tin lặp lại. Không có gì gây tổn hại cho việc tìm kiếm nội dung có liên quan của công cụ tìm kiếm cũng như tìm ra chính xác những từ giống nhau trên hai trang khác nhau. Sao chép là xấu vì những lý do này: Sao chép được sử dụng để được một chiến thuật được sử dụng để đánh lừa ...

Web Marketing: Làm thế nào để Deal với Broken Links - núm vú

Web Marketing: Làm thế nào để Deal với Broken Links - núm vú

Trong bài hát của họ. Là một nhà tiếp thị web, việc xử lý các liên kết hỏng này có thể giúp đảm bảo sự thành công của trang web của bạn. Nếu một công cụ tìm kiếm đạt đến một liên kết bị hỏng, nó không thể tìm thấy trang bạn dự định (rõ ràng) - nhưng nó cũng có thể bỏ trên trang web của bạn hoặc giảm sự liên quan ...

Lựa chọn của người biên tập

Các kiểu dữ liệu điểm nổi trong Java - núm vú

Các kiểu dữ liệu điểm nổi trong Java - núm vú

Số dấu phẩy động là số có các phần phân đoạn (thường được thể hiện bằng dấu thập phân). Bạn nên sử dụng một kiểu điểm nổi trong các chương trình Java bất cứ khi nào bạn cần một số có số thập phân, như là 19. 95 hoặc 3. 1415. Java có hai kiểu nguyên thủy cho các số dấu phẩy: float: Sử dụng 4 byte gấp đôi: Sử dụng 8 bytes Trong hầu hết tất cả ...

Tải phiên bản mới nhất của Java - núm vú

Tải phiên bản mới nhất của Java - núm vú

Trước khi bạn có thể viết các chương trình Java cho các thiết bị Android, bạn cần một số phần mềm công cụ, bao gồm cả phiên bản mới nhất của Java. Bạn có thể có được phiên bản Java mới nhất và lớn nhất bằng cách truy cập vào trang web Java. Trang web cung cấp một số lựa chọn thay thế. (Được giới thiệu) Nhấp chuột vào nút Free Java Download trên trang chính của trang web. Đối với hầu hết các máy tính, ...

Thử nghiệm với JShell - núm vú

Thử nghiệm với JShell - núm vú

JShell là một công cụ Java 9 cho phép bạn khám phá về lập trình. JShell làm cho nó dễ dàng để chơi xung quanh mà không sợ hậu quả thảm khốc. Các chương trình Java thường sử dụng cùng kiểu cũ, lúng túng: public class SomethingOrOther {public static void main (String args []) {Một chương trình Java đòi hỏi sự giới thiệu này bởi vì trong Java ...

Lựa chọn của người biên tập

Hẹn hò Sau 50: Tâm linh và Tôn giáo - những con voi

Hẹn hò Sau 50: Tâm linh và Tôn giáo - những con voi

Bản quyền © 2014 AARP Tất cả các quyền được bảo lưu. Tâm linh và tôn giáo, tình dục, những trò vui nhộn nhịp, sự tham gia của gia đình, lối sống và tiền bạc - tất cả những điều này thường quan trọng đối với những người trên 50 tuổi, nhưng bạn có thể đặt một số cao hơn những người khác. Trong bất kỳ trường hợp nào, điều quan trọng là phải suy nghĩ về họ trước để bạn có thể thảo luận ...

Hẹn hò Sau 50: Nói về Monogami - vú

Hẹn hò Sau 50: Nói về Monogami - vú

Bản quyền © 2014 AARP. Đã đăng ký Bản quyền. Một vợ một chồng là một vấn đề lớn cho dù bạn là người chưa sẵn sàng cho vợ chồng một vợ chồng và muốn hẹn hò xung quanh hay người chỉ có thể quan hệ tình dục với một người một lần. Đảm bảo đối tác hẹn hò của bạn biết bạn đang đứng ở đâu (hoặc nằm xuống) đối với vợ chồng một vợ chồng ...

Hẹn hò Sau 50: Thảo luận về sức khoẻ cá nhân của bạn - những con voi

Hẹn hò Sau 50: Thảo luận về sức khoẻ cá nhân của bạn - những con voi

Bản quyền © 2014 AARP. Đã đăng ký Bản quyền. Nếu bạn bị bệnh mãn tính hoặc đe dọa đến mạng sống khi bạn còn nhỏ, bạn đã có kinh nghiệm về sức khoẻ của mình. Có thể bạn phải liên tục kể câu chuyện về vết sẹo ngực hoặc nẹp chân hoặc giải thích số ít các viên thuốc mà bạn phải dùng mỗi ngày. Nó không phải ...