BIG O NOTATION LÀ GÌ

Bị gấu phân tách tay vị ko phân tích và lý giải cụ thể được Big O. Nay tui quyết định khăn gói phát xuất, bất chấp khó khăn, bất chấp thử thách tò mò Big O nhằm mong muốn gấu quay trở lại. Vừa đi tui vừa chửi “Big O là dòng quần qutrằn gì?”

 

Gửi em – cô gái tui iu: Anh hi vọng số đông nổ lực của chính mình đang khiến cho em thay đổi với quay về bên anh!

 

Đời là bể khổ, học thì khổ mà lại ko học tập thì lỗ. Big O mà lại không làm rõ thì làm thế nào biết thuật tân oán nhanh khô giỏi chậm chạp, làm thế nào có thể ba hoa thuộc nàng? Tui dặn lòng cần cố gắng rất là trai này nhằm đọc thấu đáo Big O.

Bạn đang xem: Big o notation là gì

Big O là gì?

Với quan niệm Big O trừu cmn tượng thì cần có hồ hết ví dụ rõ ràng - tấp nập để tui phát âm và lưu giữ thọ.

lúc em hay một người con gái khác hỏi, tui có thể lục lại rất nhiều mhình ảnh cam kết ức này.

Tình huống

Giả sử tui có một ổ cứng di động Samsung đựng không hề ít tệp tin phim JAV full HD không bít. Tui ao ước gửi tệp tin này mang đến cho một người bạn của mình ở TPhường. hà Nội. Tui đề xuất gửi những tệp tin đến các bạn bản thân càng nhanh càng tốt vị nếu không có JAV tệp tin, lừng chừng anh ấy đang sinh sống ra làm sao nữa, tình thế cực kỳ cấp bách rồi. Theo các bạn, tui đề nghị làm sao ri?

*
quý khách hàng tui vẫn phải gấp đông đảo file này!!!

Giải thuật 1 là hoàn toàn có thể gửi qua Internet, tui up lên một cloud làm sao đó: Ftóm tắt, Goolge Drive, Mediafire. Rồi gửi link cho đứa bạn của tui. Nhưng JAV full HD mà hàng vạn cỗ, ít nhất gì rồi cũng 3,4 TB rồi.

Thời gian tui up lên rồi thời gian đứa bạn tui down xuống, cùng cùng với vấn đề cá lớn cắm cáp thì cho tới Tết cũng chưa xong. Trong khi bạn tui đã có nhu cầu các tệp tin JAV này siêu gấp.

Giải thuật máy 2 là gửi luôn loại ổ cứng qua mặt đường mặt hàng không. Tui đã gửi phạt nkhô nóng qua mặt đường mặt hàng quán triệt anh ấy.

Với 2 đưa định này, anh em hãy thuộc tui so sánh coi như thế nào.

Time Complexity ( Độ tinh vi thời gian )

Đây đó là tư tưởng của Big O. Tui rất có thể diễn đạt thời hạn chạy của lời giải ( xuất xắc còn được gọi là runtimes ) chuyển file JAV cho bạn tui nhỏng sau

Internet Transfer: O(s) , trong số ấy s là kích thước của những file JAV full HD. Như vậy tức là file càng mập thì sẽ càng mất không ít thời gian, tệp tin 5TB khác cùng với file 10TB. Trong số đó s chỉ nên ký kết hiệu mang đến kích thước của file, bạn muốn đặt là gì cũng rất được. Để dễ dàng và đơn giản tui chỉ phân tích độ tinh vi dựa trên form size của file. Tuy nhiên Khi thực tiễn, gửi tệp tin qua Internet còn nhờ vào với tốc độ mạng cũng như…….......kích thước của bé cá phệ. Airplane Transfer: O(1), hiện thời vận tốc gửi tệp tin là một trong những hằng số với hằng số này bằng với vận tốc của dòng sản phẩm bay. Dù các file JAV tất cả 1TB xuất xắc 100TB thì thời gian chuyển vận file cũng nhiêu đó. Tại sao tui là nhằm O(1) mà không hẳn O(69) hay O(96). Lát nữa tui đang phân tích và lý giải phía dưới.

 

Từ khúc này trsinh sống đi, Lúc tui nói runtimes bao gồm nghĩa đang nói đến biểu thức nhằm tế bào tả độ phức tạp của thuật tân oán nha. 

Có những runtimes không giống nhau. Những runtimes các bạn thường nhìn thấy là O(log N), O(N log N),

O(N), O($ N^2 $), O( $2^N $) với những một số loại khác nữa.

Runtimes rất có thể đựng được nhiều vươn lên là. Như độ phức tạp của Internet Transfer nghỉ ngơi bên trên. Nếu tính cả hồ hết nhân tố vận tốc mạng, tốt kích thước của cá lớn thì độ tinh vi bây chừ là O(s.v/m), trong các số ấy s là vận tốc mạng với m là kích cỡ cá bự (Cá to càng to, cắm cáp càng nhanh, mạng càng chậm^.^ )

Tui mang thêm một ví dụ nữa nha. Sơn một bức tường chiều nhiều năm là w, cao là h thì Big O (wh), nếu gia chủ ao ước đánh các lớp mang đến bền, 1 lớp vôi, 1 lớp đánh , 1 lớp tô bóng ,vv với số lớp bắt buộc tô cam kết hiệu là l thì Big O hôm nay = O (lwh)

Recap: Big O để mô tả độ tinh vi của thuật toán thù. Ký hiệu O( biểu thức như thế nào kia, cách xác minh được biểu thức vào ngoặc này coi phía dưới) Runtimes rất có thể được xem theo rất nhiều đổi thay không giống nhau

Big 0, Big Theta, & Big Omega

“Trời đang có mặt Big O, sao còn xuất hiện Big Theta, & Big Omega ?” – Chu Du

Trong học tập thuật, người ta còn có các quan niệm là Big Theta O($Theta $) , & Big Omega O($Omega $)

Chi vậy, wi sờ mo, why ?

“Có lẽ càng sinh ra các quan niệm thì mới bao gồm dòng để học tập nhằm nghiên cứu và phân tích đúng hem? Có thì học tập đi thắc mắc làm ri? Có ngon thì tự ngâm cứu vãn ra tư tưởng rồi bắt tụi tui học tập nè” – Nhà bác bỏ học tập đại tài Nôbita

 

Big O: Trong học tập thuật dùng để làm diễn đạt cận trên của thời hạn. Ví dụ thuật toán in tất cả các bộ phận của mảng có N phần tử thì có O(N), nó cũng rất có thể được miêu tả là O($N^2$), O($N^3$), vv miễn sao to hơn O(N) Big Omega: $Omega$ là có mang nhằm trình bày cận dưới, trái lại cùng với Big O. In toàn bộ thành phần trong mảng bao gồm $ Omega(N) $. Cũng hoàn toàn có thể là $ Omega(logN) $, hoặc $ Omega(1) $ miễn là bé dại hơn Big Theta: $Theta$: trong học thuật thì $Theta $ gồm nghĩa tất cả cả O với $Omega$. Là sao? Nếu một thuật toán thù tất cả cả $Omega(N)$ cùng O(N) thì bao gồm $Theta(N)$ luôn.

 

Tuy nhiên, vào đời thường thì fan ta gộp $Theta$ cùng O lại thành một. Thật khó gọi Lúc cơ mà giải thuật in toàn bộ phần tử của mảng tất cả O($ N^2 $), đúng không nhỉ nào

Túm váy đầm lại: Ngoài Big O còn có Big Theta, Big Omega Trong học thuật, hàm lâm sẽ khác nhau rẽ ròi 3 đặc điểm này Đời hay thì coi nlỗi O = $Theta$

 

Best Case, Worst Case, and Expected Case

Ví dụ bạn bao gồm một sổ điện thoại:

*

 

Bạn có một sổ Smartphone có 1 000 000 số được thu xếp theo thứ từ bỏ bảng chữ cái rồi ( A->Z). quý khách ý muốn search số của bạn có tên là Khoa Đẹp Trai. Đương nhiên là bỏ lỡ ngôi trường thích hợp chúng ta đoán thù được từ bỏ K nằm ở đâu rồi lật ra đúng chỗ kia nha, tại chỗ này tui đang nói là kiếm tìm theo một giải thuật như thế nào kia, chứ đọng lật lụi ai biết con đường làm sao đâu mà lại tính.

Xem thêm: Axios Là Gì ? Cơ Bản Về Axios Trong Vuejs Axios Là Gì

Giải thuật tìm kiếm kinh khủng độc nhất là lật thông qua số máy 500 000 cùng so sánh liên hệ đó cùng với Khoa Đẹp Trai, nếu đúng thì chúng mừng, các bạn chỉ mất 1 lần tra cứu kiếm.

Nếu ko thì tất cả 2 trường phù hợp xảy ra, một là tên gọi của số điện thoại thông minh trang bị 500 000 đứng trước chữ Khoa hoặc đứng sau chữ Khoa thì ta liên tiếp phân tách song phần còn sót lại của quyển sổ điện thoại nhằm kiếm tìm tiếp nlỗi bước 1.

Giải thuật này được Call là binary search.

Giả sử quyển sổ điện thoại cảm ứng chỉ bao gồm 3 số: Bảo Bê Đê, Khoa Đẹp Trai, Vũ Gay.

Thì ta mất các nhất gấp đôi đối chiếu.

Giả sử quyển sổ Smartphone tất cả 7 số, ta mất nhiều nhất 3 lần

Giả sử quyển sổ điện thoại cảm ứng tất cả 15 số, ta mất không ít độc nhất vô nhị 4 lần

Giả sử quyển sổ điện thoại cảm ứng có 1 000 000 số, ta mất không ít nhất trăng tròn lần

Theo lý thuyết:

Best Case: trường đúng theo tốt nhất cái brand name cần tìm nằm ngay ở trung tâm O(1)

Worst Case: O(log n)

 

Trường đúng theo quyển sổ điện thoại cảm ứng này cũng 1000 000 số nhưng không được chuẩn bị xếp theo thứ từ aplabet. Giải thuật từ bây giờ là chúng ta tìm kiếm số trước tiên sau đó còn nếu như không trùng với thương hiệu “Khoa Đẹp Trai” thì bạn gửi thanh lịch số thứ nhì cđọng như thế thì bây giờ:

Best Case: cái brand name buộc phải tìm nằm ở đầu tiên O(1)

Expected Case: O(n)

Worst Case: O(n)

Chúng ta sẽ ít quyên tâm đến best case, bởi lẽ đời đâu như mơ đâu chỉ thời điểm nào thì cũng trúng ngay lập tức từ lần thứ nhất.

 

Vậy Best Case, Expected Case, Worst Case tất cả liên quan gì đến Big 0, Big Theta, và Big Omega?

Thực sự bọn chúng éo có mối contact cụ thể làm sao cả

Best Case, Expected Case, Worst Case nhằm diễn đạt Big O trong số những inputs với yếu tố hoàn cảnh rõ ràng. Chẳng hạn mảng đầu vào tất cả sort không, số cần kiếm tìm ráng như thế nào, vv Big 0, & Big Omega, Big Theta biểu lộ cận bên trên, bên dưới của runtimes

Bỏ hằng số

Ok ok. Có lẽ đến trên đây đang quá lâu năm rồi. Tuy nhiên còn không ít vấn đề chúng ta buộc phải nói. Tui mong muốn mí bạn ngủ giải lao vài phút ít rồi liên tục phát âm tiếp. Đừng bởi vì tuyệt vọng và chán nản mệt mỏi cơ mà vẫn vậy gọi, nạm quá là quá gắng kia.

Tiếp tục thôi. Bỏ hằng số là sao?

Tức là O(2N) = O(N) = O(669N)

O($ N^2 / 2 $ ) = O($ 9696N^2 $ )

Tại sao lại mang đến bỏ như vậy? Bởi vày khái niệm Big O là như thế. Cùng coi khái niệm của nó nà:

f(n)=O(g(n)) ( f is Big-O of g) or f ⪯ g if there exist constants N & c so that for all n ≥ N, f (n) ≤ c · g(n).

 

Thôi loại bỏ đi. Nhìn tư tưởng càng khó phát âm thêm!

 

Big O bỏ lỡ hằng số bởi vì nó được tạo thành ra để biểu đạt độ tăng tinh vi trong thời hạn dài, chứ đọng éo phải để tính chính xác rõ ràng là chạy mất bao nhiêu giây.

Cái hàm kia đường tính thì nhân hằng số nó cũng là con đường tính, hàm là logarit thì nhân tuyến tính cũng chính là logarit, hàm nón thì nhân hằng số nó cũng chính là mũ.

Leave a Reply

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

CÙNG CHUYÊN MỤC MỚI

  • #4621: cream pie là gì vậy mấy thím?

  • Hư vinh là gì

  • Vàng mười là gì

  • Soft swing là gì

  • x

    Welcome Back!

    Login to your account below

    Retrieve your password

    Please enter your username or email address to reset your password.