KHO THƯ VIỆN 🔎

5 ngôn ngữ java

➤  Gửi thông báo lỗi    ⚠️ Báo cáo tài liệu vi phạm

Loại tài liệu:     WORD
Số trang:         77 Trang
Tài liệu:           ✅  ĐÃ ĐƯỢC PHÊ DUYỆT
 













Nội dung chi tiết: 5 ngôn ngữ java

5 ngôn ngữ java

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java HIỆU ò LỚN•15.4 ĐÁNH GIÁ THỜI GIAN CHẠY CỦA THUẬT TOÁNvới một vân đề đặr ra có thê có nhiều thuật toán giài, chẳng hạn người ta đã tìm ra rắt nhiều th

uật toán sắp xếp một mảng dữliệu (chúng ta sẽ nghiên cứu các thuật toán sắp xếp này trong chương 17). Trong các trường hỢp như thế, khi cần sử dụng th 5 ngôn ngữ java

uật toán người ta thường chọn thuật toán có thời gian thực hiện ít hơn các thuật toán khác. Mặt khác, khi bạn đưa ra một thuật toán đê giải quyết một

5 ngôn ngữ java

vân đẽ thi một câu hỏi đặt ra là thuật toán đó có ý nghĩa thực tê không? Nếu thuật toán đó có thời gian thực hiện quá lớn chẳng hạn hàng năm, hàng thế

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java , đánh giá thời gian chạy của thuật toán là một lĩnh vực nghiên cứu quan trong của khoa học máy tinh. Trong chương này, chúng ta sẽ nghiên cứu phương

pháp đánh giá thời gian chạy của thuật toán bằng cách sử dụng ký hiệu ò lớn, và chỉ ra cách đánh gia thời gian chạy thuật toán bàng ký hiệu ô lớn. Trư 5 ngôn ngữ java

ớc khi đi tới mục tiêu trên, chúng ta sẽ thảo luận ngắn gọn một số vấn đế liên quan đến thuật toán và tính hiệu quả của thuật toán.15.1THUẬT TOÁN VÀ C

5 ngôn ngữ java

ÁC VAN ĐE liên quanThuật toán được hiểu là sự đặc tà chính xác một dãy các bước có thể thực hiện được một cách máy móc đê giải quyết một vấn đề. cần n

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java n cần cho ra các dữ liệu ra tương ứng với các dữ liệu vào.Biểu diễn thuật toán. Đè đảm bào tính chính xác, chỉ có thê hiểu một cách duy nhất, thụât to

án cán được mò tà trong một ngôn ngữ lập trinh thành một chương trình (hoặc một hàm, một thủ tục), tức là thuật toán cần được mô tá dưới dạng mã (code 5 ngôn ngữ java

). Tuy nhiên, khi trình bày một thuật toán đê cho ngắn gọn nhưng vân đảm bảo đủ chính xác, người ta thường biểu diễn thuật toán dưới dạng giâ mã (pseu

5 ngôn ngữ java

do code). Trong cách biêu diễn này, người ta sử dụng các câu lệnh trong một ngôn ngữ lập trình (pascal hoặc C++) và cá các ký hiệu toán học, các mệnh

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java ong một sõ trường hợp, đê người đọc hiểu được ý tường khái quát cùa thuật toán, người ta có thể biêu diễn thuật toán dưới dạng sơ đố (thường dược gọi

là sơ đổ khối).Tính đúng đắn (correctness) của thuật toán. Đòi hòi truớc hết đối với thuật toán là nó phải đúng đắn, tức là khi thực hiện nó phải cho 5 ngôn ngữ java

ra các dừ liệu mà ta mong muốn tương ứng với các dừ liệu vào. Chẳng hạn nếu thuật toán được thiết kế để tim ước chung lớn nhất của 2 só nguyên dương,

5 ngôn ngữ java

thì khi đưa vào 2 sõ nguyên dương (dữ liệu vào) và thực hiện thuật toán phái cho ra một số nguyên dương (dữ liệu ra) là ước chung lớn nhất của2sốnguyê

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java được trinh bày trong sách này, chúng ta có thể thấy (bằng cách lập luận không hoàn toàn chặt chẽ) các thuật toán đó là đúng đắn, và do đó chúng ta kh

ông đưa ra chứng minh chặt chẽ băng toán học. Một tính chất quan trong khác cùa thuật toán là tính hiệu quả (efficiency), chúng ta sẽ thào luận về tín 5 ngôn ngữ java

h hiệu quả cùa thuật toán trong mục tiếp theo.Đến đây chúng ta có thể đặt càu hỏi: có phải đối với bất kỳ vấn đề nào cũng có thuật toán giài (có thê t

5 ngôn ngữ java

ìm ra lời giải bằng thuật toán)? câu trả lời là không. Người ta đã phát hiện ra một so vân đe không thể đưa ra thuật toán đe giải quyết nó. Các vân đế

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java áp dụng dựa vào các tiêu chí sau:1Thuật toán đơn giản, dẻ hiểu.2Thuật toán dẻ cài dặt (dẻ viết chương trình)3Thuật toán cán ít bộ nhó4Thuật toán chạy

nhanhKhi cài đặt thuật toán chì để sừ dụng một sỏ ít lần, người ta thường lựa chọn thuật toán theo tiêu chí 1 và 2. Tuy nhiên, có nhũhg thuật toán đượ 5 ngôn ngữ java

c sử dụng rất nhiều lần, trong nhiều chương trình, chãng hạn các thuật toán sắp xếp, các thuật toán tìm kiếm, các thuật toán đổ thị... Trong các trườn

5 ngôn ngữ java

g hợp như thế người ta lựa chọn thuật toán đê sử dụng theo tiêu chí 3 và 4. Hai tiêu chí này được nói tới như là tính hiệu quà của thuật toán. Tính hi

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java ưu dừ liệu vào, dữ liệu ra, và các kết quà trung gian khi thực hiện thuật toán; dung lượng bộ nhớ mà thuật toán đòi hòi còn được gọi là độ phức tạp kh

ông gian của thuật toán. Thời gian thực hiện thuật toán được nói tới như là thời gian chạy (running time) hoặc độ phức tạp thời gian của thuật toán. S 5 ngôn ngữ java

au này chúng ta chỉ quan tâm tới đánh giá thời gian chạy của thuật toán.Đánh giá thời gian chạy của thuật toán bằng cách nào? với cách tiếp cận thực n

5 ngôn ngữ java

ghiệm chúng ta có thể cài đặt thuật toán và cho chạy chương trình trên một máy tính nào đó với một sò dữ liệu vào. Thời gian chạy mà ta thu được sẽ ph

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java p cận thực nghiệm, ta không thê nói thời gian chạy của thuật toán là bao nhiêu dơn vị thời gian. Chẳng hạn câu nói “thời gian chạy cùa thuật toán là 3

0 giây” là không thể chấp nhận được. Nêu có hai thuật toán A và B giải quyết cùng một vấn đế, ta cũng không thể dùng phương pháp thực nghiệm để kết lu 5 ngôn ngữ java

ận thuật toán nào chạy nhanh hơn, bởi vì ta mới chỉ chạy chương trình với một sò dữliệu vào.Một cách tiếp cận khác để đánh giá thời gian chạy của thuậ

5 ngôn ngữ java

t toán là phương pháp phàn tích sừ dụng các công cụ toán học. Chúng ta mong muốn có kết luận vẽ thời gian chạy cùa một thuật toán mà nó không phụ thuộ

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java ệm cỡ (size) của dữ liều vào. cờ của dữ liệu vào được xác định phụ thuộc vào tùhg thuật toán. Ví dụ, trong thuật toán tính định thức của ma trận vuông

cắp n, ta có thể chọn cỡ cùa dừ liệu vào là cấp n cùa ma trận; còn đòi với thuật toán sắp xếp mảng cỡ n thì cờ của dữ liệu vào chính là cờ n của mảng 5 ngôn ngữ java

. Đương nhiên là có vỏ số dữ liệu vào cùng một cờ. Nói chung trong phần lớn các thuật toán, cỡ của dữ liệu vào là một só nguyên dương n. Thời gian chạ

5 ngôn ngữ java

y của thuật toán phụ thuộc vào cờ của dữ liệu vào; chẳng hạn tính định thức của ma trận cáp 20 đòi hỏi thời gian chạy nhiều hơn tính định thức của ma

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java vào cờ cùa dừ liệu vào mà còn phụ thuộc vào chính dữ liệuvào. Trong só các dữ liệu vào cùng một cờ, thời gian chạy của thuật toán cũng thay đổi. Chẳng

hạn, xét bài toán tìm xem đòi tượng a có mặt trong danh sách (a 1,..., a i,..., a „) hay không. Thuật toán được sử dụng là thuật toán tìm kiếm tuần t 5 ngôn ngữ java

ự: Xem xét lần lượt từng phấn tử của danh sách cho tới khi phát hiện ra đòi tượng cần tìm thì dừhg lại, hoặc đi hét danh sách mà không gặp phần tử nào

5 ngôn ngữ java

băng a. ơ đây cỡ của dữ liệu vào là n, nếu một danh sách với a là phấn từ đẩu tiên, ta chỉ cán một lấn so sánh và dãy là trường hỢp tốt nhất, nhưhg n

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java là trường hợp xâu nhát. Vi vậy, chúng ta cần đưa vào khái niệm thời gian chạy trong trường hợp xấu nhất và thời gian chạy trung bình.Thời gian chạy tr

ong trường hỢp xấu nhất (worst-case running time) cùa một thuật toán là thời gian chạy lớn nhất của thuật toán đó trên tát cả các dữ liệu vào cùng cở 5 ngôn ngữ java

. Chúng ta sẽ ký hiệu thời gian chạy trong trường hợp xâu nhất là T(n), trong đó n là cờ của dữ liệu vào. Sau này khi nói tới thời gian chạy của thuật

5 ngôn ngữ java

toán chúng ta cấn hiểu đó là thời gian chạy trong trường hợp xâu nhất. Sừ dụng thời gian chạy trong trường hợp xâu nhất đê biêu thị thời gian chạy cú

PHÂN TÍCH THUẬT TOÁN•15.1 THUẬT TOÁN VÀ CÁC VAN ĐE liên ỌUAN•15.2 TÍNH HIỆU ỌUÀ CỦA THUẬT TOÁN•15.3 KÝ HIỆU Ó LỚN VÀ BIÊU DIEN thời gian chạy bới KÝ H

5 ngôn ngữ java áp dụng, trường hợp xấu nhất cũng thường xuyên xảy ra.Chúng ta xác định thời gian chạy trung bình (average running time) của thuật toán là số trung b

ình cộng của thời gian chạy cùa thuật toán đó trên tất cả các dữ liệu vào cùng cờ n. Thời gian chạy trung bình của thuật toán sẽ được ký hiệu là T tb 5 ngôn ngữ java

(n). Đánh giá thời gian chạy trung bình của thuật toán là công việc rát khó khăn, cẩn phải sử dụng các công cụ của xác suất, thống kê và cấn phải biết

5 ngôn ngữ java

được phân phối xác suất của các dữ liệu vào. Rất khó biết được phân phôi xác suất của các dữ liệu vào. Các phân tích thường phải dựa trên giả thiết c

Gọi ngay
Chat zalo
Facebook