DANH MỤC TÀI LIỆU
Là lập trình viên bạn cần biết những thuật toán hàng đầu này
Nh ng thu t toán hàng đ u dành cho l p trình viênữ ậ
Xã h i hi n t i đang ch ng ki n m t cu c cách m ng to l n trong lĩnh v c ệ ạ ế
công ngh . Nh ng phát minh m i liên t c đ c c p nh t. Th ng thì ượ ậ ườ
ngu n g c c a nh ng phát minh này là t nh ng ch ng trình g o c i có ố ủ ươ
kh năng chi ph i và thao túng các xu h ng công ngh đang di n ra. ướ ệ ễ
Trong s đó không th không nói đ n mã hóa và thu t toán, đ c s d ng ế ượ ử ụ
đ phát tri n các ch ng trình c nh tranh nh v y. Vì th , đ i v i m t ươ ư ậ ế
ch ng trình thành công và có t m nh h ng, vi c khai thác m t thu t ươ ầ ả ưở
toán đúng và chính xác là đi u t t y u. Sau đây là 10 thu t toán hàng đ u ấ ế
đ c s d ng r ng rãi trong l p trình và phát tri n web.ượ ử ụ
Hashing
Hi n đang tham gia vào vi c phát hi n và xác đ nh d li u thích h p ữ ệ
b ng key và ID, theo m t nghiên c u, Hashing ộ ứ là thu t toán đ c s ượ ử
d ng. V i vai trò m r ng vi c phát hi n l i, qu n lý b nh cache, ở ộ
m t mã và tra c u , hàm Hashing tích h p các khóa phù h p và cho ậ ứ
các giá tr chính xác. Hàm này cũng có th đ c s d ng nh m t ể ượ ử ụ ư
đ nh danh duy nh t cho các t p d li u nh t đ nh và các phép tính ữ ệ
toán cho phép ng i dùng t o ra các giá tr d li u không trùng l p. ườ ị ữ
Thông th ng nó đ c áp d ng trong các b đ nh tuy n đ l u tr ườ ượ ế ể ư
đ a ch IP.ị ỉ
Search Algorithms
Thu t toán tìm ki m ế th ng đ c áp d ng cho dãy c u trúc d li uườ ượ ữ ệ
tuy n tính ho c c u trúc d li u đ h a. Thu t toán tìm ki m tuy n ế ồ ọ ế ế
tính còn đ c g i là tìm ki m nh phân, giúp nhà phát tri n ti n hành ượ ọ ế ế
tìm ki m hi u qu trên các t p d li u đ c s p x p v i hàm ph c ế ữ ệ ượ ế
t p th i gian c a O (log N). C ch c a tìm ki m nh phân là chia ơ ế ủ ế
danh sách thành hai n a cho đ n khi nó tìm th y m c đ c yêu c u ế ụ ượ
và th ng đ c s d ng đ g nh ng l i liên quan đ n git bisection.ườ ượ ử ụ ể ỡ ế
Các thu t toán này còn đ c bi t đ n v i ch c năng là Chi u ượ ế ế ớ ứ
sâu/Chi u r ng Tìm ki m Đ u tiên, nó cho ta c u trúc d li u là m t ế ữ ệ
bi u đ tròn ho c hình cây đã b t ch c năng tìm ki m, xác đ nh các ể ồ ế
t p d li u c n thi t trong mô hình cây ngang. BFS r t ph bi n ữ ệ ế ế
trong các công c tìm ki m, cũng đ c s d ng đ xây d ng các bot ế ượ ử ụ
trong AI hay đ nh v các con đ ng ng n nh t gi a hai thành ph . ườ ấ ữ
Thu t toán s p x p (Sort Algorithms) ắ ế
Các thu t toán s p x p ế th ng đ c các nhà phát tri n dùng đ đ tườ ượ ể ặ
d li u theo cách có t ch c. Trong thu t toán QuickSort, các thành ữ ệ
ph n d li u đ c so sánh v i nhau đ xác đ nh th t t ng ng ượ ứ ự ươ
c a chúng. Nó có đ ph c t p th i gian c a O(nLogn) đ th c hi n ứ ạ
so sánh. Tuy nhiên, Radix Sort là m t k thu t nhanh h n QuickSort ộ ỹ ơ
vì nó s p x p các ph n t trong m t mô hình tuy n tính v i đ ph c ế ầ ử ế ớ ộ
t p th i gian O(n). Tính đ n gi n c a thu t toán này làm cho nó đ cạ ờ ơ ả ượ
a chu ng. Các thu t toán s p x p khác bao g m S p x p h p nh t, ư ắ ế ắ ế ợ
S p x p nhóm và S p x p đ m.ắ ế ắ ế ế
Thu t toán l p trình đ ng (Dynamic Programming Algorithms)ậ ậ
L p trình đ ng th ng là m t hàm gi i quy t v n đ ph c t p liên ườ ế ứ ạ
quan đ n trí tu b ng cách tách các v n đ thành các bài toán con nhế ệ ằ
h n, gi i quy t chúng sau đó xây d ng tr l i thành v n đ ph c t p ơ ế ở ạ
v i b nh c a các k t qu nh h n đ đ a ra câu tr l i cho v n đ ộ ớ ế ả ỏ ơ ể ư ấ ề
ph c t p ban đ u. L p trình đ ng có kh năng tích h p đ ghi nh , ứ ạ
cho phép l u tr các ký c v các v n đ đã gi i quy t tr c đó. ư ế ư
N u l n ti p theo v n đ y l i xu t hi n thì nó sế ầ ế ấ ệ đ c gi i quy t ượ ả ế
nhanh h n nhi u.ơ ề
Phân tích liên k t (Link Analysis)ế
Th ng đ c s d ng trong lĩnh v c m ng,ườ ượ ử ụ phân tích liên k tế cung
c p kh năng t ng quan gi a các th c th khác nhau trong m t ươ ự ể
mi n quan tr ng đ i v i các công c tìm ki m. Thu t toán s d ng ế ử ụ
m t bi u di n đ h a và ma tr n ph c t p, liên k t các căn c t ng ế ứ ươ
t trong các mi n hi n t i. Phân tích liên k t ph bi n trong các công ệ ạ ế ổ ế
c tìm ki m nh Google, trong các trang truy n thông xã h i nh ế ư ộ ư
Facebook, Twitter, n i vi c tìm ki m m r ng đ c chú tr ng.ơ ế ở ộ ượ
Phép toán Mô-đun (Modulo Arithmetic Algorithms)
Nhi u thu t toán mã hóa ph c t p nh ng n u đ c phân tích trên ứ ạ ư ế ượ
n n s h c mô-đunố ọ thì tr nên đ n gi n vô cùng. Trong s h c mô- ơ ố ọ
đun, các s chúng ta đang x lý ch là các s nguyên và các phép toán ử ỉ
đ c s d ng là c ng, tr , nhân và chia. S khác bi t duy nh t gi a ượ ử ụ
s h c mô-đun và s h c trên sách v trong s h c mô-đun, t t c ố ọ ố ọ ố ọ
các ho t đ ng đ c th c hi n liên quan đ n s nguyên d ng, t c làạ ộ ượ ế ươ
mô đun.
Ví d :
1. Thu t toán Euclide c b n và m r ng ơ ở ộ
2. Ph ng trình hoàn h o c a Eulerươ ả ủ
3. Lũy th a mô đun
4. Tính ngh ch đ o theo mô đunị ả
5. Đ nh lý s d c a Trung Qu c ư ủ
6. Đ nh lý s d c a Trung Qu c và th c thi tính ngh ch đ o c a mô ư ủ
đun
Thu t toán xâu ký t và phân tích cú pháp (String Matching and ậ ự
Parsing Algorithms)
Quy trình t o xâu t ng ng luôn quan tr ng đ c bi t đ i v i mi n ươ ệ ố ớ
và ph n t m ng. Thu t toán xâu ký t này s phát huy kh năng t i ầ ử ạ
đa trong các tình hu ng mà các xâu ph i kh p trong m t chu i dài ả ớ
ho c khi xác nh n chu i b ng cách ỗ ằ phân tích cú pháp qua gi i h n ớ ạ
đ c xác đ nh tr c. Các thu t toán này th ng đ c s d ng trong ượ ướ ườ ượ ử ụ
phát tri n web cho URL.
Thu t toán bi n đ i Fourier (Fourier Transform Algorithms) ế ổ
Bi n đ i Fourierế ổ hay Bi n đ i Fourire nhanhế ổ là nh ng thu t toán ữ ậ
đ n gi n nh ng r t m nh. Chúng đ c s d ng đ chuy n đ i tín ơ ư ượ ử ụ
hi u t mi n th i gian sang mi n t n s và ng c l i. Toàn b các ượ ạ
m ng k thu t s nh Internet, WiFi, đi n tho i, máy tính, b đ nh ư ộ ị
tuy n, v tinh, s d ng thu t toán này theo đ v n hành. Đây là ế ử ụ ể ậ
nh ng thu t toán b t bu c ph i bi t n u b n chuyên sâu v m ng ế ế ề ả
đi n t , đi n toán ho c vi n thông.ệ ử
Thu t toán các t p không giao nhau (Disjoint Sets)ậ ậ
Thu t toán các t p không giao nhauậ ậ là c u trúc d li u đóng vai trò ữ ệ
nh các c u trúc tr giúp trong m t thu t toán đ bi u di n nhi u ư ể ể
t p h p trong m ng riêng l , v i m i m c là m t ph n t c a m t ử ủ
trong nhi u t p h p. Do đó, các b tách r i đ i di n cho các ph n t ề ậ ờ ạ ầ ử
đ c k t n i trong các thu t toán đ th hay phân đo n m t hình nh.ượ ế ố ồ ị
H s tích phân (Integer Factorization)ệ ố
Thu t toán lũy th a s nguyênừ ố là m t thu t toán toán cung c p ộ ậ
h ng d n t ng b c v cách l y các th a s nguyên t c a m t s ướ ướ ố ủ
t ng h p. Thu t toán này gi i quy t các v n đ ph c t p trong các ế ứ ạ
n n t ng mã hóa yêu c u b n ph i gi i quy t các s nguyên ph c ề ả ế
h p l n.ợ ớ
thông tin tài liệu
Đối với một chương trình thành công và có tầm ảnh hưởng, việc khai thác một thuật toán đúng và chính xác là điều tất yếu. Sau đây là 10 thuật toán hàng đầu được sử dụng rộng rãi trong lập trình và phát triển web.
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×