Những thuật toán quan trọng cho loài người trong những thập kỷ qua là gì? [đóng cửa]


40

Những thuật toán quan trọng nhất thế giới đã đóng góp nhiều nhất cho loài người trong những thập kỷ qua?

Tôi nghĩ rằng đây là một kiến ​​thức chung tốt cho một nhà phát triển biết.

Cập nhật:
Nếu có thể, vui lòng giữ câu trả lời cho một thuật toán lập trình cụ thể .
Tôi muốn có một danh sách những cái quan trọng nhất, chỉ có một thuật toán cho mỗi câu trả lời.
Vui lòng xem xét tại sao thuật toán quan trọng và quan trọng ...


2
Nó bị đóng cửa bởi vì (cho đến nay) bốn người coi đó là "không phải là một câu hỏi thực sự", có lẽ bởi vì chúng tôi không có ý tưởng thực sự nào, một cách đơn giản, một thuật toán lập trình quan trọng là gì.
David Thornley

2
Nó có thể lạc đề, nhưng đó là một câu hỏi thực sự.
Jeremy

1
+1 Câu hỏi hay. Tôi đề nghị hỏi lại điều này trên cstheory.stackexchange.com
Aleksandr Levchuk

1
Tại sao bạn trả lời câu hỏi của riêng bạn? Vài lần?

2
Không có câu trả lời sai + số lượng câu trả lời không giới hạn + một nhận xét rõ ràng yêu cầu "mỗi câu trả lời" + tác giả đăng một số câu trả lời của riêng mình = trường hợp sách giáo khoa của một câu hỏi không mang tính xây dựng. Tôi biết nó đã cũ, nhưng chúng ta hãy đóng cái này lại.
Aaronaught

Câu trả lời:


59

Mã hóa khóa công khai / riêng tư là khá quan trọng. Thương mại Internet sẽ không còn phổ biến nếu không có nó.


4
+1 và để thêm vào câu trả lời của bạn, RSA.
sange

Có cả một nhóm các thuật toán và thực tiễn tốt nhất liên quan đến việc biến mã hóa mật mã (như RSA) thành các giải pháp thực tế.
Donal Fellows

37

Thuật toán của Dijkstra

Thuật toán tồn tại trong mọi bộ định tuyến trên thế giới, để xác định tuyến đường tốt nhất giữa hai nút trong mạng.


Bạn có chắc không? Hầu hết các bộ định tuyến đều biết rằng số IP thuộc về nó và chuyển tiếp nó đến máy trên mạng cục bộ hoặc biết một bộ định tuyến biết rõ hơn - bộ định tuyến mặc định - trong trường hợp gói tin đi đến bộ định tuyến đó. Các bộ định tuyến lớn có thể biết rằng đối với phạm vi địa chỉ IP X1-Y1, gói nên đến bộ định tuyến R1, đối với phạm vi X2-Y2, gói nên chuyển đến bộ định tuyến R2, v.v. Không có thuật toán Dijkstras nào liên quan đến việc này.

2
@ Thorbjørn Ravn Andersen: Nhưng để bộ định tuyến biết thông tin đó, một lúc nào đó sẽ phải sử dụng thuật toán của Dijkstra. Có, nó không được sử dụng để thực sự định tuyến từng gói riêng lẻ, nhưng nó được sử dụng để xác định các bảng định tuyến trên các mạng lớn. +1.
Billy ONeal

@Billy, chính xác thì bạn mong đợi thuật toán Dijkstra thực sự được sử dụng ở đâu và bởi ai?

@ Thorbjørn Ravn Andersen: Theo hiểu biết của tôi, nó đóng một vai trò trong OSPF, là nền tảng của việc chọn các tuyến chính xác cho các mạng nhỏ. Kết nối giữa các mạng lớn hơn sử dụng BGP, dựa trên chính sách nhiều hơn. Tôi không chắc liệu BGP có sử dụng thuật toán của Dijkstra hay không.
Billy ONeal

3
@Billy, nhưng sự phản đối của tôi là "tồn tại trong MỌI bộ định tuyến trên thế giới". Đó là - theo ý kiến ​​của tôi - hoàn toàn sai.

30

Biến đổi Fourier nhanh (FFT)

FFT là một phương pháp cực kỳ quan trọng và được sử dụng rộng rãi để trích xuất thông tin hữu ích từ các tín hiệu được lấy mẫu .

Biến đổi Fourier nhanh (FFT) là một thuật toán hiệu quả để tính toán biến đổi Fourier rời rạc (DFT) và nghịch đảo của nó.


4
Tôi đã từng có một ông chủ, người mà nhiều thập kỷ trước, đã viết một loạt các chức năng FFT cho PDP-11. Ông đã bán một bộ thẻ bài tập có các chức năng đó với một quảng cáo ở mặt sau của Khoa học phổ biến và làm cho ngân hàng khá nghiêm túc. Rõ ràng anh ta có người sử dụng mã của mình cho tất cả mọi thứ, từ xử lý tín hiệu đến dự đoán thị trường chứng khoán.
Dan Ray

26

TrangRank

PageRank là một thuật toán phân tích liên kết, được đặt tên theo Larry Page, được sử dụng bởi công cụ tìm kiếm Google Internet, gán trọng số bằng số cho từng thành phần của một tập hợp tài liệu siêu liên kết, như World Wide Web, với mục đích "đo lường" họ hàng của nó tầm quan trọng trong tập hợp.


haha, câu trả lời của chúng tôi chỉ cách nhau 2 giây, xin lỗi :)
Maksee

không có vấn đề gì cả! :)
Amir Rezaei

36
Tôi không bao giờ nhận ra nó được đặt theo tên của Larry Page. Tôi luôn cho rằng tên này có liên quan đến Trang web.
JohnFx

1
@JohnFx Whoa, không đùa đâu!
Đánh dấu C

+1: nhưng nó có thể đủ điều kiện nếu thuật toán thực tế không được nhân loại biết đến không? (IIRC wikipedia là một xấp xỉ)
Steven Evers

22

Thuật toán nén dữ liệu

Trong khoa học máy tính và lý thuyết thông tin, nén dữ liệu hoặc mã hóa nguồn là quá trình mã hóa thông tin bằng cách sử dụng ít bit hơn (hoặc các đơn vị mang thông tin khác) so với cách biểu diễn không mã hóa sẽ sử dụng, thông qua việc sử dụng các sơ đồ mã hóa cụ thể.


2
Chính xác và tôi nghĩ thuật toán nén cơ bản LZW có thể được coi là một trong những thuật toán đẹp nhất trong công nghệ phần mềm.
mojuba

"nếu có thể hãy đặt tên của thuật toán cụ thể"

14

Smith-Waterman (và Needman-Wunsch)

Điều này có thể là quá xa cho nên xin vui lòng bình luận.

Smith-Waterman: Thuật toán sắp xếp thứ tự

Tôi nghĩ một trong những ví dụ như vậy là thuật toán Smith-Waterman và Needman-Wunsch và các xấp xỉ của chúng. Tất cả chúng về cơ bản đều làm cùng một việc: chúng sắp xếp hai hoặc nhiều chuỗi (chuỗi) . Có một ý nghĩa trong Sinh học. Khi các chuỗi DNA hoặc Protein được căn chỉnh - các vùng tương tự về cấu trúc, chức năng và tiến hóa được tiết lộ.

BLAST là hậu duệ của Smith-Waterman

Một heuristic gần bằng Smith-Waterman là BLAST. Nó cho phép tìm kiếm các chuỗi cơ sở dữ liệu lớn cho sự tương tự sinh học. Sự phổ biến của BLAST thực sự rất lớn - rất có thể là thuật toán được sử dụng rộng rãi nhất trong Sinh học. Các lĩnh vực mới hơn trong Tin sinh học và Genomics có các thuật toán Smith-Waterman / Needman-Wunsch gần đúng hơn và chính xác hơn BLAST.

Bộ gen hội như một hậu duệ của Smith-Waterman

Các xấp xỉ thông lượng cao của Smith-Waterman và Needman-Wunsch nhanh hơn BLAST được sử dụng để lắp ráp các bộ gen từ trình tự bắn súng - trong đó sản phẩm của máy tạo chuỗi là số lượng lớn DNA đọc được (hàng tỷ) từ các bộ phận tùy ý của Bộ gen rất ngắn (50 đến 100 nucleotide). Cách tiếp cận đã được sử dụng để hoàn thành Dự án bộ gen người. Tất cả các trình tự hiện đại được thực hiện theo cách này.

Nhiều chuỗi liên kết một phần mở rộng của Smith-Waterman

Nhiều thuật toán sắp xếp nhiều chuỗi liên tục tồn tại - chúng đang xấp xỉ một phiên bản nhiều chuỗi của Smith-Waterman / Needman-Wunsch. Nhiều chuỗi được liên kết thành một nhóm đồng thời với nhau. Đây là một vấn đề khó khăn hơn nhiều so với đối tác của nó, nhưng các giải pháp cung cấp cái nhìn sâu sắc hơn nhiều về chức năng sinh học, cấu trúc và lịch sử tiến hóa của các chuỗi liên quan.


Xin chào và chào mừng các lập trình viên! Bạn có thể muốn chia câu trả lời này thành một cho mỗi thuật toán bạn trình bày ở đây theo thông lệ cho các câu hỏi như thế này để tạo điều kiện cho việc bỏ phiếu và sắp xếp.
Yi Jiang

@Yi Jiang: Pantheon của tôi! Tôi đọc sai nhận xét của bạn là "tạo điều kiện cho nôn mửa". : - /
dr Hannibal Lecter

Ở đây tôi chỉ tranh luận về một thuật toán duy nhất - Smith-Waterman (và đó là biến thể Needman-Wunsch)
Aleksandr Levchuk

13

Siam đặt tên sau đây là thuật toán quan trọng nhất của thế kỷ 20:

Năm 1946: Thuật toán đô thị cho Monte Carlo . Thông qua việc sử dụng các quy trình ngẫu nhiên, thuật toán này cung cấp một cách hiệu quả để tìm ra câu trả lời cho các vấn đề quá phức tạp để giải quyết chính xác.

1947: Phương pháp Simplex cho lập trình tuyến tính . Một giải pháp tao nhã cho một vấn đề phổ biến trong việc lập kế hoạch và ra quyết định.

1950: Phương pháp lặp lại không gian con Krylov . Một kỹ thuật để giải quyết nhanh chóng các phương trình tuyến tính có rất nhiều tính toán khoa học.

1951: Phương pháp tiếp cận phân tách để tính toán ma trận . Một bộ các kỹ thuật cho đại số tuyến tính số.

1957: Trình biên dịch tối ưu hóa Fortran . Biến mã cấp cao thành mã có thể đọc được trên máy tính hiệu quả.

1959: Thuật toán QR để tính toán giá trị bản địa . Một hoạt động ma trận quan trọng khác được thực hiện nhanh chóng và thiết thực.

1962: Thuật toán Quicksort để sắp xếp . Để xử lý hiệu quả các cơ sở dữ liệu lớn.

Năm 1965: Biến đổi Fourier nhanh . Có lẽ thuật toán phổ biến nhất được sử dụng hiện nay, nó phá vỡ các dạng sóng (như âm thanh) thành các thành phần định kỳ.

1977: Phát hiện quan hệ số nguyên . Một phương pháp nhanh để phát hiện các phương trình đơn giản được thỏa mãn bởi các tập hợp các số dường như không liên quan.

1987: Phương pháp đa cực nhanh . Một bước đột phá trong việc đối phó với sự phức tạp của các tính toán cơ thể n, được áp dụng trong các vấn đề từ cơ học thiên thể đến việc gấp protein.

Cá nhân tôi sẽ thay thế Phát hiện quan hệ số nguyên bằng PageRank .


1
Trong danh sách này, tôi sẽ thêm 2 cuốn sách, mặc dù chúng có nhiều hơn về "những định lý quan trọng nhất" của thế kỷ 20: Five Golden Rules amazon.com/Five-Golden-Rules-20th-Century-Mathatures/dp/ , và Năm quy tắc vàng nữa. amazon.com/Five-More-Golden-Rules-20th-Century/dp/0471395285
Tangurena

Kỹ thuật Monte Carlo vẫn được sử dụng, ít nhiều ở dạng ban đầu. Điều này cũng đúng với FFT và Quicksort. Hầu hết phần còn lại tôi chỉ đơn giản là không quen thuộc. Phương pháp Simplex cho LP hoàn toàn không có quy mô, so với các phương pháp hiện đại hơn.
David Thornley

9

PageRank, yêu hay ghét nó, nhưng nó ảnh hưởng đến quyết định và hành động của hàng triệu người trên toàn thế giới hàng ngày.


9

Nếu tôi phải liệt kê 3 thuật toán quan trọng nhất được sử dụng hiện nay trong máy tính, tôi sẽ nói:

  1. Tìm kiếm nhị phân
  2. Sắp xếp nhanh chóng
  3. Thuật toán của Dijkstra

Các tìm kiếm nhị phân thuật toán được sử dụng liên tục để thu hẹp vào một mục trong danh sách được sắp xếp, hầu hết các chỉ số tra cứu sẽ sử dụng một cái gì đó dọc theo những dòng tại một số điểm. Thuật toán này cung cấp tìm kiếm danh sách theo thứ tự trong thời gian o (log n).

Các Sắp xếp nhanh thuật toán cuối cùng quản lý để có được sắp xếp xuống O (n log n) trường hợp trung bình và O (n ^ 2) trường hợp tồi tệ hơn. Sắp xếp là một trong những nhiệm vụ dữ liệu phổ biến nhất trong máy tính và là một trong những nhiệm vụ tốn kém nhất, cải thiện trường hợp trung bình là một bước tiến lớn về hiệu quả.

Thuật toán của Dijkstra như đã nói tạo ra một con đường ngắn nhất giữa các điểm trong biểu đồ. Điều này được sử dụng rộng rãi cho tất cả các cách thức ứng dụng định tuyến, hầu hết liên quan đến internet, đảm bảo rằng đường dẫn nhanh nhất qua mạng rối của các bộ định tuyến được kết nối được sử dụng.


Tìm kiếm nhị phân sẽ phải rất, rất cũ ... Ý tôi là, nó đã được hình thành "trong quá khứ" và nó đã ở trong một "thập kỷ", nhưng nó đã tồn tại hàng trăm năm.
Kirk Broadhurst

@Kirk Broadhurst: Tuy nhiên, đây là một thuật toán cực kỳ quan trọng đối với máy tính. Bất kể khi nào một người đầu tiên quan niệm nó.
Orble

8

Định lý Bayes

Có lẽ nó đã đóng góp nhiều nhất để giữ lượng thư rác lãng phí thời gian trong hộp thư đến của tôi ở mức có thể quản lý được.

Tất nhiên, tôi đã được sử dụng trong nhiều ứng dụng đáng giá khác, nhưng giết SPAM là sở thích của tôi.


Tôi sẽ cung cấp cho bạn ngón tay cái lên, nhưng đây là một định lý (một trong những điều tốt nhất) và không phải là một thuật toán. Tuy nhiên, nhiều thuật toán dựa trên định lý này.
Amir Rezaei

Tôi chỉ cố gắng gộp tất cả chúng vào một loại thuật toán chung, nhưng về mặt kỹ thuật thì bạn đã đúng.
JohnFx

@AmirR Đúng kỹ thuật, loại đúng nhất!
Đánh dấu C

7

TimSort

Đây là thuật toán sắp xếp hiện được sử dụng trong Python , Java 7Android

Về cơ bản:

  • Trường hợp xấu nhất O (N log N) (không suy biến)
  • O (N) cho danh sách gần như đã được sắp xếp (thực tế N-1chính xác là trong danh sách đã được sắp xếp)

Còn vẻ đẹp của nó? Đó là ổn định ! Và do đó thích hợp để phân loại nhiều lần theo các tiêu chí khác nhau.

Nhân tiện, nếu có ai có sẵn triển khai C ++ được tối ưu hóa ...


Không thể là Θ (NlogN), vì nó có hành vi tốt hơn trong danh sách đã được sắp xếp. O (NlogN) là ký hiệu đúng ở đây.
Donal Fellows

Mặc dù cái này rất hay, nhưng tôi chắc chắn không gọi nó là "một trong những thuật toán vĩ đại nhất được phát minh trong những thập kỷ qua". Mergesort, dựa trên Timsort, là thành tựu thực sự.
Billy ONeal

6

Tất cả các thuật toán được sử dụng để giải quyết vấn đề hiển thị trong Hoạt hình máy tính 3D có vẻ rất quan trọng đối với tôi.

Thuật toán của họa sĩ

Thuật toán của họa sĩ, còn được gọi là điền ưu tiên, là một trong những giải pháp đơn giản nhất cho vấn đề hiển thị trong đồ họa máy tính 3D. Khi chiếu cảnh 3D lên mặt phẳng 2D, tại một số điểm cần thiết để quyết định đa giác nào có thể nhìn thấy và ẩn.

Bộ đệm Z

Trong đồ họa máy tính, bộ đệm z là quản lý tọa độ độ sâu hình ảnh trong đồ họa ba chiều (3-D), thường được thực hiện trong phần cứng, đôi khi trong phần mềm. Đây là một giải pháp cho vấn đề về khả năng hiển thị, đó là vấn đề quyết định các yếu tố nào của cảnh được hiển thị và phần nào bị ẩn. Thuật toán của họa sĩ là một giải pháp phổ biến khác, mặc dù kém hiệu quả hơn, cũng có thể xử lý các yếu tố cảnh không mờ. Bộ đệm Z còn được gọi là bộ đệm sâu.

Xác định bề mặt ẩn

Trong đồ họa máy tính 3D, xác định bề mặt ẩn (còn được gọi là loại bỏ bề mặt ẩn (HSR), loại bỏ tắc (OC) hoặc xác định bề mặt có thể nhìn thấy (VSD) là quá trình được sử dụng để xác định bề mặt và các phần của bề mặt không nhìn thấy được từ một quan điểm nhất định Thuật toán xác định bề mặt ẩn là một giải pháp cho vấn đề về khả năng hiển thị, đây là một trong những vấn đề lớn đầu tiên trong lĩnh vực đồ họa máy tính 3D. Quá trình xác định bề mặt ẩn đôi khi được gọi là ẩn và thuật toán này đôi khi được gọi là ẩn Ví dụ, tương tự cho kết xuất đường là loại bỏ đường ẩn. Xác định bề mặt ẩn là cần thiết để hiển thị hình ảnh chính xác, để người ta không thể nhìn xuyên qua các bức tường trong thực tế ảo, ví dụ.


3

Bất cứ ai bạn cần để giải quyết vấn đề hiện tại của bạn.


1
Đó là những gì tôi sẽ nói. Bây giờ tôi không phải nói điều đó.
Robert Harvey

Bất cứ điều gì không phải là một câu trả lời tốt. Bất kỳ thuật toán nào không có ý nghĩa đối với loài người.
Amir Rezaei

6
Đây không phải là một thuật toán cụ thể và ngay cả khi nó có lẽ không quan trọng đối với loài người.
jason

3

Soundex là một thuật toán ngữ âm để lập chỉ mục tên theo âm thanh.


Soundex đã đóng góp cho loài người như thế nào?
barjak

Nó cải thiện khả năng sử dụng ngôn ngữ tự nhiên, sửa lỗi cho những khác biệt nhỏ trong cách đánh vần và phát âm khu vực.
sal

3

Thuật toán Viterbi

Ban đầu được sử dụng để giải mã các mã sửa lỗi tích chập, giờ đây nó được sử dụng để giải quyết một loạt các vấn đề nhận dạng (từ nhận dạng giọng nói đến tin sinh học). Bạn có thể tìm thấy nó trong một số thiết bị liên lạc và lưu trữ.


Thuật toán +1 Viterbi rất quan trọng. @ [Giacomo Verticale] có lẽ bạn nên đề cập đến mối quan hệ của nó với Mô hình Markov ẩn (HMM).
Alexanderr Levchuk

3

MP3

Mặc dù nó là một thuật ngữ chung hơn một thuật toán cụ thể, tôi muốn đề cập đến MP3 như là sự kết hợp của các thuật toán và kỹ thuật khác nhau hợp tác để tạo ra định dạng âm thanh bị mất này.

Nó chắc chắn đã rất có ý nghĩa trong "kỷ nguyên số".


3

Tích hợp số Runge-Kutta . Không có nó, nhiều mô phỏng sẽ không thể thực hiện được. Không chương trình không gian, không năng lượng hạt nhân, không đạn đạo, không mô phỏng thể thao, không áo chống đạn, không mô phỏng thử nghiệm va chạm, không mô phỏng chuyển động chất lỏng, không mô phỏng tương tác hóa học, không có tòa nhà chống động đất ... danh sách này vẫn tiếp tục.


+1 @ j172 Tôi biết cái này, nó thực sự hữu ích trong phân tích và mô phỏng số.
Amir Rezaei

2

Thuật toán sắp xếp.


5
đây không phải là một thuật toán cụ thể, mặc dù ...
Justin L.

Vâng, những gì Justin L. đã nói, thuật toán sắp xếp nào?
dr Hannibal Lecter

"Thuật toán cụ thể" nên được hợp nhất, đầu tiên trong số các loại n lg n.
Billy ONeal

2
@dr Hannibal Lecter: Tất nhiên là sắp xếp bong bóng. Mọi thứ khác là tối ưu hóa sớm.
peterchen

2

1
Kinh quá! Tôi chắc chắn hy vọng mọi người không sử dụng quicksort trong mã sản xuất. Quan trọng hơn là sáp nhập đã đến sớm hơn và gần như là nhanh chóng. (Hy vọng rằng hầu hết các mã sử dụng một số biến thể trên Introsort)
Billy ONeal

2
@Billy ONeal, sắp xếp trong .NET là tất cả Quicksort. Vì vậy, bất kỳ chương trình nào gọi Danh sách <T> .Sort () đều sử dụng quicksort trong sản xuất.
Steven Evers

@SnOrfus: Bạn có bằng chứng về tuyên bố đó không? Theo hiểu biết của tôi Danh sách <t> .Sort dựa trên introsort.
Billy ONeal

3
@Billy ONeal: trực tiếp từ
msdn

3
@ Thorbjørn: Đây vẫn chưa phải là một thuật toán có mục đích chung tốt. Introsort quicksort, nhưng nó chuyển sang sắp xếp heap nếu vượt quá độ sâu đệ quy nhất định. Điều này cho phép một người có các đặc tính tốt của quicksort nhưng luôn tránh các trường hợp bệnh lý, ngay cả khi thuật toán chọn các trục xoay xấu.
Billy ONeal

1

Sắp xếp chèn

Dễ dàng thực hiện, rất nhanh trên các danh sách nhỏ và được sử dụng trong triển khai Hợp nhất Sắp xếp / Quicksort để tăng tốc chúng. Nó ổn định và hoạt động theo O (n) trên các danh sách được sắp xếp (khi được sắp xếp theo thứ tự tăng dần).



1

Bộ lọc Kalman

Nó được sử dụng nhiều trong điều hướng, theo dõi mục tiêu (đối với hầu hết mọi cảm biến: radar, sonar, FLIR, ladar). Một sách giáo khoa cho thấy một ứng dụng trong bộ điều khiển ổ đĩa. Hệ thống điều khiển robot thường xuyên sử dụng bộ lọc Kalman.


0

Ngôn ngữ nói và viết.

Chúng hiện là một trong những thuật toán hiệu quả nhất để chuyển kiến ​​thức từ thứ này sang thứ khác. Không có ngôn ngữ, xã hội dân sự không thể tồn tại và thông tin không thể được chuyển tải.


5
-1: Thuật toán có thể được biểu thị bằng ngôn ngữ tự nhiên, nhưng ngôn ngữ tự nhiên không phải là thuật toán.
Steven Evers

2
Bạn có thể nói thuật toán nén không phải là thuật toán không? Tất cả các ngôn ngữ là nén thông tin được truyền từ một nguồn đến một thụ thể. Nó có các quy tắc cụ thể phải được tuân theo (ngữ pháp) giống như bất kỳ thuật toán nào khác, và nó cần một đầu vào (kinh nghiệm của bạn) và tạo ra một đầu ra khác (kiến thức). Tôi không thấy làm thế nào bạn không thể coi ngôn ngữ là một thuật toán.
Malfist

Nó thất bại tất cả các định nghĩa tiêu chuẩn của thuật toán trên nhiều mặt.
James phục hồi Monica Polk

0

Các đống cấu trúc dữ liệu và thuật toán liên quan để xây dựng và bảo trì heap.

Và thể hiện một số tôn trọng cho quicksort. Ngay cả khi nó không phải luôn luôn là sự lựa chọn, nó là một trong những thuật toán cơ bản trong sự phát triển lịch sử của khoa học máy tính và là phương tiện tuyệt vời để hiểu đệ quy và phân tích thuật toán. Nó là đẹp, và vâng, tôi yêu nó.


0

Các thuật toán lập chỉ mục như B-tree, B + -tree, chỉ số băm, chỉ mục cây nhị phân, vv Để lập chỉ mục lượng dữ liệu khổng lồ.


0

MapReduce như một cách để phân chia, chinh phục và xử lý song song các tập dữ liệu lớn.


-1

Thuật toán Brute Force!

Nhiều người đánh giá thấp thuật toán vũ phu này. Trên thực tế, nó chủ yếu được sử dụng để giải quyết các vấn đề không có mô hình. Tôi yêu nó nhiều!


5
Đó không phải là một thuật toán. Đó là một loại thuật toán.
Adam Lear

Đó là một phương pháp để phá vỡ mã hóa.
Amir Rezaei

Tôi nghĩ nó cũng được phân loại là một thuật toán. "Bắt đầu từ x đến y làm gì đó." <--- thuật toán phải không?
xport

Một thuật toán là một chuỗi các bước để hoàn thành một nhiệm vụ cụ thể . Điều đó không cụ thể.
Anto

-5

Sắp xếp bong bóng!

Sắp xếp bong bóng không tệ như Bogosort . Đó là lý do tại sao tôi bỏ phiếu cho loại Bong bóng.


1
Vui lòng xem xét để nêu lý do tại sao thuật toán có ý nghĩa và quan trọng, mọi người dường như không đồng ý về lý do tại sao Bubble Sort có thể quan trọng và quan trọng.
Tamara Wijsman

5
Ngay cả Barack Obama cũng biết sắp xếp bong bóng là con đường sai lầm .
Joey Adams

@TomWij, @Joey: xem cập nhật của tôi.
xport
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.