Các Incompressibility Phương pháp được cho là đơn giản hóa việc phân tích các thuật toán đối với trường hợp bình thường. Từ những gì tôi hiểu, đây là vì không có nhu cầu để tính toán tất cả các kết hợp có thể có của đầu vào cho thuật toán đó và sau đó lấy được một độ phức tạp trung bình. Thay vào đó, một chuỗi không thể nén được lấy làm đầu vào. Như một chuỗi không thể nén là điển hình, chúng ta có thể giả định rằng đầu vào này có thể hoạt động như một phép tính xấp xỉ chính xác của trường hợp trung bình.trung bình phân tích thuật toán trường hợp sử dụng Kolmogorov Incompressibility Phương pháp
Tôi mất liên quan đến thực tế áp dụng các phương pháp Incompressibility tới một thuật toán. Là một sang một bên, tôi không phải là một nhà toán học, nhưng nghĩ rằng lý thuyết này có các ứng dụng thực tế trong lập trình hàng ngày.
Cuối cùng, tôi muốn tìm hiểu làm thế nào tôi có thể suy ra trường hợp trung bình của bất kỳ thuật toán nhất định, có thể là tầm thường hay phức tạp. Ai đó có thể vui lòng chứng minh cho tôi làm thế nào phương pháp có thể được áp dụng cho một thuật toán đơn giản? Ví dụ, với một chuỗi đầu vào S, lưu trữ tất cả các nhân vật duy nhất trong S, sau đó in mỗi một cá nhân:
void uniqueChars(String s) {
char[] chars = chars[ s.length() ];
int free_idx = 0;
for (int i = 0; i < s.length(); i++) {
if (! s[i] in chars) {
chars[free_idx] = s[i];
free_idx++;
}
}
for (int i = 0; i < chars.length(); i++) {
print (chars[i]);
}
}
Chỉ vì lợi ích của đối số. Tôi nghĩ rằng giả mã là đủ. Giả sử tìm kiếm tuyến tính để kiểm tra xem mảng có chứa phần tử hay không.
thuật toán tốt hơn mà lý thuyết này có thể được chứng minh là có thể chấp nhận, tất nhiên.
Câu hỏi này có lẽ vô nghĩa và không thực tế, nhưng tôi thà hỏi hơn giữ quan niệm sai lầm.
Bạn có thể muốn kiểm tra (bài báo này) [http://homepages.cwi.nl/~paulv/papers/sorting.pdf] cho một ví dụ về việc áp dụng phương pháp này. Nhưng tôi phải tự hỏi mục tiêu của bạn là gì. Bạn có một thuật toán có thời gian chạy mà bạn muốn phân tích không? Một lưu ý phụ, mã được cung cấp của bạn có thể khó phân tích vì thời gian chạy 'Set.add' phụ thuộc vào việc thực hiện' Set'. – murgatroid99
Câu hỏi này có thể phù hợp hơn cho [Phân tích ngăn xếp khoa học máy tính] (http://cs.stackexchange.com/) – Barranka
Mục tiêu của tôi là tìm hiểu cách áp dụng Phương pháp không nén để phân tích thời gian chạy trung bình. Đây chỉ là một phần của học tập cá nhân, chứ không phải là một yêu cầu ngay lập tức. – user3813812