อัลกอริทึมที่สำคัญสำหรับมนุษย์ในทศวรรษที่ผ่านมาคืออะไร? [ปิด]


40

อัลกอริทึมที่สำคัญที่สุดในโลกใดที่มีส่วนช่วยมนุษย์ในทศวรรษที่ผ่านมามากที่สุด?

ฉันคิดว่านี่เป็นความรู้ทั่วไปที่ดีสำหรับนักพัฒนาที่จะรู้

ปรับปรุง:
ถ้าเป็นไปได้โปรดเก็บคำตอบของอัลกอริทึมการเขียนโปรแกรมเฉพาะไว้
ฉันต้องการได้รับรายชื่อของสิ่งที่สำคัญที่สุดเพียงหนึ่งอัลกอริทึมต่อคำตอบ
โปรดพิจารณาว่าทำไมอัลกอริทึมจึงสำคัญและสำคัญ ...


2
มันถูกปิดเพราะ (ถึงตอนนี้) สี่คนคิดว่า "ไม่ใช่คำถามจริง" อาจเป็นเพราะเราไม่มีความคิดที่แท้จริงอะไรเลยในการแยกขั้นตอนวิธีการเขียนโปรแกรมที่สำคัญคือ
David Thornley

2
อาจเป็นนอกหัวข้อ แต่เป็นคำถามจริง
Jeremy

1
+1 คำถามที่ดี ฉันขอแนะนำให้ถามสิ่งนี้อีกครั้งใน cstheory.stackexchange.com
Aleksandr Levchuk

1
ทำไมคุณตอบคำถามของคุณเอง? หลายครั้ง?

2
ไม่มีคำตอบที่ผิด + คำตอบไม่ จำกัด จำนวน + ความคิดเห็นที่ไม่คลุมเครือถาม "หนึ่งคำตอบต่อ" + โพสต์ผู้แต่งหลายคำตอบของตัวเอง = กรณีหนังสือเรียนของคำถามที่ไม่สร้างสรรค์ ฉันรู้ว่ามันเก่า แต่ขอปิดนี่สิ
Aaronaught

คำตอบ:


59

การเข้ารหัสคีย์สาธารณะ / ส่วนตัวนั้นสำคัญมาก การค้าทางอินเทอร์เน็ตคงจะไม่มีแพร่หลายมากหากปราศจากมัน


4
+1 และเพื่อเพิ่มคำตอบ RSA ของคุณ
ประหลาดใจที่

มีกลุ่มของอัลกอริธึมและแนวปฏิบัติที่ดีที่สุดที่เกี่ยวข้องในการเปลี่ยนรหัสการเข้ารหัส (เช่น RSA) เป็นวิธีแก้ปัญหาเชิงปฏิบัติ
Donal Fellows

37

อัลกอริทึมของ Dijkstra

อัลกอริทึมนั้นมีอยู่ในเราเตอร์ทุกเครื่องในโลกเพื่อระบุเส้นทางที่ดีที่สุดระหว่างสองโหนดในเครือข่าย


คุณแน่ใจไหม? เราเตอร์ส่วนใหญ่รู้ว่าหมายเลข IP เป็นของมันและส่งต่อไปยังเครื่องในเครือข่ายท้องถิ่นหรือรู้ว่าเราเตอร์ที่รู้จักดีกว่า - เราเตอร์เริ่มต้น - ในกรณีที่แพ็กเก็ตไปที่เราเตอร์นั้น เราเตอร์ขนาดใหญ่อาจทราบว่าสำหรับช่วงที่อยู่ IP X1-Y1 แพ็กเก็ตควรไปที่เราเตอร์ R1 สำหรับช่วง X2-Y2 แพ็กเก็ตควรไปที่เราเตอร์ R2 และอื่น ๆ ไม่มีอัลกอริทึม Dijkstras เกี่ยวข้องกับเรื่องนี้

2
@ Thorbjørn Ravn Andersen: แต่สำหรับเราเตอร์ที่จะรู้ว่าข้อมูลบางคนจะต้องใช้อัลกอริทึมของ Dijkstra ใช่มันไม่ได้ใช้สำหรับการกำหนดเส้นทางแต่ละแพ็กเก็ตจริง ๆ แต่จะใช้ในการกำหนดตารางเส้นทางในเครือข่ายขนาดใหญ่ +1
Billy ONeal

@Billy คุณคาดหวังอย่างแน่นอนว่าอัลกอริทึม Dijkstra นั้นถูกใช้งานโดยใคร

@ Thorbjørn Ravn Andersen: เพื่อความเข้าใจของฉันมันมีบทบาทใน OSPF ซึ่งเป็นพื้นฐานของการเลือกเส้นทางที่ถูกต้องสำหรับเครือข่ายขนาดเล็ก การเชื่อมต่อระหว่างเครือข่ายขนาดใหญ่ใช้ BGP ซึ่งเป็นนโยบายมากขึ้น ฉันไม่แน่ใจว่า BGP ใช้อัลกอริทึมของ Dijkstra หรือไม่
Billy ONeal

3
@Billy แต่คำคัดค้านของฉันคือ "มีอยู่ในเราเตอร์ทุกคนในโลก" นั่นคือ - ในความคิดของฉัน - ผิดอย่างชัดเจน

30

การแปลงฟูริเยร์อย่างรวดเร็ว (FFT)

FFT เป็นวิธีการที่สำคัญมากและใช้กันอย่างแพร่หลายของการแยกข้อมูลที่เป็นประโยชน์จากสัญญาณตัวอย่าง

การแปลงฟูริเยร์แบบเร็ว (FFT) เป็นอัลกอริธึมที่มีประสิทธิภาพในการคำนวณการแปลงฟูริเยร์แบบแยก (DFT) และอินเวอร์ส


4
ฉันมีเจ้านายคนหนึ่งซึ่งเมื่อหลายทศวรรษก่อนได้เขียนชุดฟังก์ชั่น FFT สำหรับ PDP-11 เขาขายเด็คการ์ดพร้อมฟังก์ชั่นเหล่านั้นพร้อมโฆษณาด้านหลังวิทยาศาสตร์ยอดนิยมและสร้างธนาคารที่น่าสนใจมาก เห็นได้ชัดว่าเขามีคนใช้รหัสของเขาสำหรับทุกอย่างจากการประมวลผลสัญญาณการทำนายตลาดหุ้น
Dan Ray

26

จัดอันดับหน้า

PageRank เป็นอัลกอริธึมการวิเคราะห์ลิงก์ซึ่งตั้งชื่อตาม Larry Page ซึ่งใช้โดย เครื่องมือค้นหาอินเทอร์เน็ตของ Googleที่กำหนดน้ำหนักเป็นตัวเลขให้กับองค์ประกอบของชุดเอกสารที่เชื่อมโยงหลายมิติเช่นเวิลด์ไวด์เว็บโดยมีวัตถุประสงค์เพื่อ "วัด" ความสำคัญภายในชุด


ฮ่าฮ่าคำตอบของเราห่างกันเพียง 2 วินาทีขออภัย :)
Maksee

ไม่มีปัญหาเลย! :)
Amir Rezaei

36
ฉันไม่เคยรู้เลยว่ามันถูกตั้งชื่อตาม Larry Page ฉันคิดเสมอว่าชื่อมีส่วนเกี่ยวข้องกับเว็บเพจ
JohnFx

1
@JohnFx โอ้โหไม่ล้อเล่น!
ทำเครื่องหมาย C

+1: แต่มันจะมีคุณสมบัติได้หรือไม่ถ้าอัลกอริทึมที่เกิดขึ้นจริงไม่รู้จักกับมนุษย์? (IIRC ของวิกิพีเดียเป็นการประมาณ)
Steven Evers

22

อัลกอริธึมการบีบอัดข้อมูล

ในวิทยาการคอมพิวเตอร์และทฤษฎีสารสนเทศการบีบอัดข้อมูลหรือการเข้ารหัสแหล่งที่มาคือกระบวนการเข้ารหัสข้อมูลโดยใช้บิตน้อยลง (หรือหน่วยแบกข้อมูลอื่น ๆ ) แทนที่จะใช้การเข้ารหัสแบบไม่เข้ารหัสผ่านการใช้รูปแบบการเข้ารหัสเฉพาะ


2
แน่นอนและฉันคิดว่าอัลกอริทึมการบีบอัดพื้นฐาน LZW ถือได้ว่าเป็นหนึ่งในอัลกอริทึมที่สวยที่สุดในวิศวกรรมซอฟต์แวร์
mojuba

"ถ้าเป็นไปได้ให้ชื่อของอัลกอริทึมเฉพาะ"

14

Smith-Waterman (และ Needleman-Wunsch)

อาจเรียกได้ไกลเกินไปโปรดแสดงความคิดเห็น

Smith-Waterman: อัลกอริทึมการจัดตำแหน่งลำดับ

ฉันคิดว่าหนึ่งในตัวอย่างดังกล่าวคืออัลกอริธึม Smith-Waterman และ Needleman-Wunsch และการประมาณของพวกเขา ทั้งหมดของพวกเขาจะได้เป็นหลักทำในสิ่งเดียวกันพวกเขาจัดสองคนหรือมากกว่าสตริง (ลำดับ) ชีววิทยามีความสำคัญ เมื่อลำดับดีเอ็นเอหรือโปรตีนอยู่ในแนวเดียวกัน - มีการเปิดเผยขอบเขตของโครงสร้างหน้าที่และวิวัฒนาการที่คล้ายคลึงกัน

BLAST ในฐานะผู้สืบทอดของ Smith-Waterman

ฮิวริสติกที่ใกล้เคียงกับ Smith-Waterman คือ BLAST จะช่วยให้การค้นหาลำดับของฐานข้อมูลขนาดใหญ่สำหรับความคล้ายคลึงกันทางชีวภาพ ความนิยมของ BLAST นั้นยอดเยี่ยมมาก - เป็นไปได้มากว่าอัลกอริทึมที่ใช้กันอย่างแพร่หลายในชีววิทยา พื้นที่ใหม่ใน Bioinformatics และ Genomics มีการประมาณใหม่และดีกว่าของ Smith-Waterman / Needleman-Wunsch ซึ่งมีความแม่นยำมากกว่า BLAST

การประชุมจีโนมในฐานะทายาทของ Smith-Waterman

การประมาณปริมาณผลผลิตสูงของ Smith-Waterman และ Needleman-Wunsch ที่เร็วกว่า BLAST นั้นถูกใช้เพื่อรวบรวม Genomes จากการจัดลำดับของปืนลูกซองซึ่งผลิตภัณฑ์ของเครื่องซีเควนเซอร์นั้นเป็น DNA จำนวนมหาศาลที่อ่านจากพันส่วนของ Genome สั้นมาก (50 ถึง 100 นิวคลีโอไทด์) วิธีนี้ใช้เพื่อทำให้โครงการจีโนมมนุษย์เสร็จสมบูรณ์ การเรียงลำดับที่ทันสมัยทั้งหมดทำได้ด้วยวิธีนี้

Multiple Sequence Alignment เป็นส่วนเสริมของ Smith-Waterman

มีอัลกอริธึมการจัดตำแหน่งหลายลำดับจำนวนมาก - มันใกล้เคียงกับรุ่นลำดับหลายชุดของ Smith-Waterman / Needleman-Wunsch มีการจัดลำดับหลายลำดับเป็นกลุ่มพร้อมกัน มันเป็นปัญหาที่ยากกว่าการจับคู่แบบทวนเข็มนาฬิกา แต่การแก้ปัญหานั้นให้ข้อมูลเชิงลึกเกี่ยวกับฟังก์ชันโครงสร้างและประวัติวิวัฒนาการของลำดับที่เกี่ยวข้อง


สวัสดีและยินดีต้อนรับสู่โปรแกรมเมอร์! คุณอาจต้องการแบ่งคำตอบนี้เป็นคำตอบเดียวสำหรับอัลกอริทึมแต่ละอันที่คุณนำเสนอที่นี่ตามธรรมเนียมสำหรับคำถามในรายการเช่นนี้เพื่อความสะดวกในการลงคะแนนและการเรียงลำดับ
ยี่เจียง

@Yi Jiang: แพนธีออนของฉัน! ฉันอ่านความคิดเห็นของคุณผิดว่า "ช่วยให้อาเจียน" : - /
ดร. Hannibal Lecter

ที่นี่ฉันเถียงเพียงหนึ่งอัลกอริทึม - สมิ ธ ฝีพาย (และมันแตกต่างกัน Needleman-Wunsch)
Aleksandr Levchuk

13

สยามได้ชื่อว่าต่อไปนี้เป็นอัลกอริทึมที่สำคัญที่สุดของศตวรรษที่ 20:

1946: เมโทรโพลิสอัลกอริทึมสำหรับ Monte Carlo ด้วยการใช้กระบวนการสุ่มอัลกอริทึมนี้นำเสนอวิธีที่มีประสิทธิภาพในการสะดุดต่อคำตอบของปัญหาที่ซับซ้อนเกินกว่าจะแก้ได้อย่างแน่นอน

1947: วิธี Simplex สำหรับการเขียนโปรแกรมเชิงเส้น ทางออกที่ยอดเยี่ยมสำหรับปัญหาทั่วไปในการวางแผนและการตัดสินใจ

1950: Krylov สเปซวิธีซ้ำ เทคนิคสำหรับการแก้สมการเชิงเส้นอย่างรวดเร็วที่อุดมไปด้วยการคำนวณทางวิทยาศาสตร์

1951: วิธีการ Decompositional การคำนวณเมทริกซ์ ชุดของเทคนิคสำหรับพีชคณิตเชิงเส้นเชิงตัวเลข

1957: Fortran เพิ่มประสิทธิภาพคอมไพเลอร์ เปลี่ยนรหัสระดับสูงให้เป็นรหัสที่คอมพิวเตอร์อ่านได้อย่างมีประสิทธิภาพ

1959: QR ขั้นตอนวิธีการคำนวณค่าลักษณะเฉพาะ การทำงานของเมทริกซ์ที่สำคัญอีกอย่างหนึ่งนั้นทำให้รวดเร็วและใช้งานได้

1962: Quicksort อัลกอริทึมสำหรับการเรียงลำดับ สำหรับการจัดการฐานข้อมูลขนาดใหญ่อย่างมีประสิทธิภาพ

1965: ด่วนแปลงฟูริเยร์ บางทีอัลกอริทึมที่แพร่หลายที่สุดที่ใช้กันอยู่ในทุกวันนี้มันสามารถแยกรูปแบบของคลื่น (เช่นเสียง) ออกเป็นองค์ประกอบตามช่วงเวลา

1977: จำนวนเต็มสัมพันธ์การตรวจสอบ วิธีที่รวดเร็วในการหาสมการง่าย ๆ ที่พอใจโดยการรวบรวมจำนวนที่ไม่เกี่ยวข้องกัน

1987: วิธี multipole ด่วน ความก้าวหน้าในการจัดการกับความซับซ้อนของการคำนวณแบบ n-body ซึ่งนำไปใช้ในปัญหาต่าง ๆ ตั้งแต่กลไกท้องฟ้าไปจนถึงการพับโปรตีน

ส่วนตัวผมจะเข้ามาแทนที่จำนวนเต็มสัมพันธ์ตรวจสอบกับPageRank


1
ในรายการนี้ฉันจะเพิ่มหนังสือ 2 เล่มถึงแม้ว่าพวกเขาจะมีเนื้อหาเกี่ยวกับ "ทฤษฎีบทที่สำคัญที่สุด" ของศตวรรษที่ 20: กฎทองคำห้าข้อamazon.com/Five-Golden-Rules-20th-Century-Mathematics/dp/และ กฎทองคำอีกห้าข้อ amazon.com/Five-More-Golden-Rules-20th-Century/dp/0471395285
Tangurena

ยังคงใช้เทคนิค Monte Carlo มากหรือน้อยในรูปแบบดั้งเดิม นี่เป็นความจริงของ FFT และ Quicksort ส่วนที่เหลือฉันไม่คุ้นเคย วิธี Simplex สำหรับ LP นั้นไม่ได้ปรับขนาดเลยเมื่อเทียบกับวิธีที่ทันสมัยกว่า
David Thornley

9

PageRank รักหรือเกลียด แต่มันมีผลต่อการตัดสินใจและการกระทำของผู้คนนับล้านทั่วโลก googling ในชีวิตประจำวัน


9

ถ้าฉันต้องแสดงรายการอัลกอริทึมที่สำคัญที่สุด 3 อันดับแรกที่มีการใช้งานในคอมพิวเตอร์ในวันนี้ฉันจะบอกว่า:

  1. ค้นหาแบบทวิภาค
  2. quicksort
  3. อัลกอริทึมของ Dijkstra

ค้นหาแบบไบนารีขั้นตอนวิธีการถูกนำมาใช้อย่างต่อเนื่องที่จะแคบลงในรายการที่อยู่ในรายการที่เรียงลำดับส่วนใหญ่การค้นหาดัชนีจะใช้สิ่งที่ตามเส้นเหล่านี้ในบางจุด อัลกอริทึมนี้ให้การค้นหารายการสั่งในเวลา (log n)

Quicksortอัลกอริทึมในที่สุดการจัดการที่จะได้รับการจัดเรียงลงไป O (n log n) กรณีเฉลี่ยและ O (n ^ 2) กรณีที่เลวร้ายยิ่ง การเรียงลำดับเป็นหนึ่งในงานข้อมูลที่พบบ่อยที่สุดในคอมพิวเตอร์และหนึ่งในงานที่แพงที่สุดการปรับปรุงการเรียงลำดับเคสโดยเฉลี่ยนั้นเป็นขั้นตอนที่มีประสิทธิภาพสูง

อัลกอริธึมของ Dijkstraดังที่กล่าวไว้จะสร้างเส้นทางที่สั้นที่สุดระหว่างจุดภายในกราฟ สิ่งนี้ถูกใช้อย่างกว้างขวางสำหรับแอปพลิเคชั่นการกำหนดเส้นทางทุกรูปแบบส่วนใหญ่อย่างกว้างขวางเกี่ยวกับอินเทอร์เน็ตทำให้มั่นใจได้ว่าจะใช้เส้นทางที่เร็วที่สุดผ่านเว็บที่พันกันของเราเตอร์ที่เชื่อมต่อกัน


การค้นหาแบบไบนารี่จะต้องเก่ามาก ๆ ... ฉันหมายถึงมันเป็นสูตร 'ในอดีต' และมันอยู่ใน 'ทศวรรษ' แต่มันคงอยู่มาหลายร้อยปีแล้ว
Kirk Broadhurst

@ Kirk Broadhurst: ถึงกระนั้นมันก็เป็นอัลกอริธึมที่สำคัญอย่างไม่น่าเชื่อสำหรับคอมพิวเตอร์ ไม่ว่ามนุษย์จะรู้สึกถึงมันเป็นครั้งแรก
Orbling

8

ทฤษฎีบทของเบย์

มันอาจช่วยให้มากที่สุดในการรักษาปริมาณของการเสียเวลาในกล่องจดหมายของฉันให้อยู่ในระดับที่จัดการได้

แน่นอนว่าฉันใช้ในแอพพลิเคชั่นที่คุ้มค่าอื่น ๆ อีกมากมาย แต่การฆ่าสแปมเป็นสิ่งที่ฉันโปรดปราน


ฉันจะยกนิ้วให้คุณ แต่นี่เป็นทฤษฎีบท (หนึ่งในดีที่สุด) ไม่ใช่อัลกอริธึม อย่างไรก็ตามอัลกอริธึมหลายอย่างนั้นใช้ทฤษฎีบทนี้
Amir Rezaei

ฉันแค่พยายามรวบรวมพวกมันทั้งหมดเป็นอัลกอริธึมทั่วไป แต่ในทางเทคนิคคุณถูกต้องแล้ว
JohnFx

@AmirR ถูกต้องทางเทคนิคเป็นประเภทที่ดีที่สุดที่ถูกต้อง!
Mark C

7

TimSort

นี่เป็นอัลกอริทึมการเรียงลำดับที่ใช้ในPython , Java 7และAndroid

โดยทั่วไป:

  • O (N log N) กรณีที่เลวร้ายที่สุด (ไม่เสื่อม)
  • O (N) สำหรับรายการที่จัดเรียงเกือบ (ในความเป็นจริงN-1ในรายการเรียงแล้ว)

และความงามของมัน? มันเสถียร ! ดังนั้นจึงเหมาะสำหรับการคัดแยกหลายระดับตามเกณฑ์ต่างๆ

ถ้าใครมีการใช้ C ++ ที่ดีที่สุดในมือ ...


ไม่สามารถเป็นΘ (NlogN) ได้เนื่องจากมีพฤติกรรมที่ดีกว่าในรายการที่เรียงลำดับแล้ว O (NlogN) เป็นสัญกรณ์ที่ถูกต้องที่นี่
Donal Fellows

ในขณะที่อันนี้ดีฉันไม่ได้เรียกมันอย่างแน่นอนว่า "หนึ่งในอัลกอริทึมที่ยิ่งใหญ่ที่สุดที่ประดิษฐ์ขึ้นในทศวรรษที่ผ่านมา" การควบรวมกิจการตาม Timsort ซึ่งเป็นความสำเร็จที่แท้จริง
Billy ONeal

6

อัลกอริทึมทั้งหมดที่ใช้ในการแก้ปัญหาการมองเห็นในภาพเคลื่อนไหวคอมพิวเตอร์ 3 มิตินั้นสำคัญสำหรับฉัน

อัลกอริธึมของ Painter

อัลกอริธึมของจิตรกรหรือที่เรียกว่าการเติมลำดับความสำคัญเป็นหนึ่งในวิธีการแก้ปัญหาการมองเห็นที่ง่ายที่สุดในคอมพิวเตอร์กราฟิก 3D เมื่อฉายภาพ 3 มิติไปยังระนาบ 2 มิติในบางจุดจำเป็นต้องตัดสินใจว่ารูปหลายเหลี่ยมใดที่มองเห็นได้และสิ่งใดถูกซ่อนอยู่

Z-บัฟเฟอร์

ในคอมพิวเตอร์กราฟิกส์ z-buffering คือการจัดการพิกัดความลึกของภาพในกราฟิกสามมิติ (3 มิติ) ซึ่งมักจะทำในฮาร์ดแวร์บางครั้งในซอฟต์แวร์ มันเป็นวิธีการหนึ่งในการแก้ไขปัญหาการมองเห็นซึ่งเป็นปัญหาในการตัดสินใจว่าองค์ประกอบใดของฉากที่แสดงผลจะมองเห็นได้และสิ่งใดถูกซ่อนอยู่ อัลกอริธึมของจิตรกรเป็นอีกวิธีการแก้ปัญหาทั่วไปซึ่งแม้ว่าจะมีประสิทธิภาพน้อยกว่าก็สามารถจัดการองค์ประกอบฉากที่ไม่ทึบ Z-buffering ยังเป็นที่รู้จักกันในนามบัฟเฟอร์ลึก

การกำหนดพื้นผิวที่ซ่อนอยู่

ในคอมพิวเตอร์กราฟิก 3D การหาพื้นผิวที่ซ่อนอยู่ (หรือที่เรียกว่าการกำจัดพื้นผิวที่ซ่อนอยู่ (HSR), การบดเคี้ยว (OC) หรือการกำหนดพื้นผิวที่มองเห็นได้ (VSD)) เป็นกระบวนการที่ใช้ในการพิจารณาว่าพื้นผิวและส่วนใดของพื้นผิวใด อัลกอริทึมการกำหนดพื้นผิวที่ซ่อนอยู่เป็นวิธีการแก้ปัญหาการมองเห็นซึ่งเป็นหนึ่งในปัญหาที่สำคัญครั้งแรกในด้านกราฟิกคอมพิวเตอร์ 3D กระบวนการของการกำหนดพื้นผิวที่ซ่อนอยู่บางครั้งเรียกว่าการซ่อนและอัลกอริทึมดังกล่าวบางครั้งเรียกว่า อะนาล็อกสำหรับการเรนเดอร์บรรทัดเป็นการลบเส้นที่ซ่อนอยู่การกำหนดพื้นผิวที่ซ่อนอยู่นั้นจำเป็นต่อการเรนเดอร์รูปภาพอย่างถูกต้อง


3

ไม่ว่าคุณจะต้องแก้ไขปัญหาใดในปัจจุบัน


1
นั่นคือสิ่งที่ฉันจะพูด ตอนนี้ฉันไม่ต้องพูด
Robert Harvey

ไม่ว่าคำตอบไหนดี อัลกอริธึมใดไม่สำคัญสำหรับมนุษย์
Amir Rezaei

6
นี่ไม่ใช่อัลกอริธึมที่เฉพาะเจาะจงและแม้ว่ามันจะเป็นไปได้ก็ตามมันอาจไม่สำคัญสำหรับมนุษยชาติ
สัน

3

Soundexเป็นอัลกอริทึมการออกเสียงสำหรับการจัดทำดัชนีชื่อด้วยเสียง


Soundex สนับสนุนมนุษย์อย่างไร?
barjak

มันปรับปรุงความสามารถในการใช้ภาษาธรรมชาติแก้ไขความแตกต่างเล็กน้อยในการสะกดและการออกเสียงในระดับภูมิภาค
พะยอม

3

อัลกอริทึม Viterbi

เดิมทีใช้เพื่อถอดรหัสรหัสการแก้ไขข้อผิดพลาดทาง Convol ตอนนี้มันถูกใช้เพื่อแก้ปัญหาการจดจำที่หลากหลาย (ตั้งแต่การรู้จำเสียงพูดไปจนถึงชีวสารสนเทศศาสตร์) คุณสามารถค้นหาได้ในอุปกรณ์สื่อสารและอุปกรณ์เก็บข้อมูลต่าง ๆ


ขั้นตอนวิธี +1 Viterbi มีความสำคัญมาก @ [Giacomo Verticale] บางทีคุณควรพูดถึงความสัมพันธ์กับโมเดลซ่อนมาร์คอฟ (HMM)
Aleksandr Levchuk

3

MP3

แม้ว่าจะเป็นคำทั่วไปมากกว่าอัลกอริทึมเฉพาะ แต่ฉันพูดถึง MP3 เป็นการรวมของอัลกอริทึมและเทคนิคต่าง ๆ ที่ทำงานร่วมกันเพื่อสร้างรูปแบบเสียงที่สูญเสียนี้

มันมีความสำคัญอย่างมากในยุคดิจิตอล


3

การรวมตัวเลข Runge-Kutta ไม่ว่ามันจะมีสถานการณ์จำลองมากมาย ไม่มีโปรแกรมอวกาศไม่มีพลังงานนิวเคลียร์ไม่มีขีปนาวุธไม่มีการจำลองกีฬาไม่มีเสื้อเกราะกันกระสุนไม่มีการจำลองการทดสอบการชนไม่มีการจำลองการเคลื่อนที่ของของเหลว


+1 @ j172 ฉันรู้อันนี้มันมีประโยชน์จริง ๆ ในการวิเคราะห์เชิงตัวเลขและแบบจำลอง
Amir Rezaei

2

ขั้นตอนวิธีการเรียงลำดับ


5
นี้ไม่ได้เป็นอัลกอริทึมที่เฉพาะเจาะจง แต่ ...
จัสตินแอล

ใช่จัสตินแอลพูดอะไรกันซึ่งเป็นขั้นตอนวิธีการเรียงลำดับ
ดร. Hannibal Lecter

"อัลกอริทึมเฉพาะ" ควรจะรวมกันเป็นครั้งแรกของ n lg n เรียงลำดับ
Billy ONeal

2
@dr Hannibal Lecter: Bubble Sort แน่นอน ทุกอย่างอื่นคือการเพิ่มประสิทธิภาพก่อนวัยอันควร
peterchen

2

1
yuck! ฉันหวังว่าคนไม่ได้ใช้ quicksort ในรหัสการผลิต การควบรวมกิจการที่สำคัญมาก่อนหน้านี้และเกือบจะเร็ว (หวังว่าโค้ดส่วนใหญ่ใช้ตัวแปรบางอย่างใน Introsort)
Billy ONeal

2
@Billy ONeal การเรียงลำดับใน. NET คือ Quicksort ทั้งหมด ดังนั้นโปรแกรมใด ๆ ที่เรียกรายการ <T> .Sort () จะใช้ quicksort ในการผลิต
Steven Evers

@SnOrfus: คุณมีหลักฐานของคำสั่งนั้นหรือไม่? ในรายการความเข้าใจของฉัน <t> เรียงลำดับตาม Introsort
Billy ONeal

3
@Billy ONeal: ส่งตรงจากmsdn
msdn.microsoft.com/en-us/library/b0zbh7b6.aspx

3
@ Thorbjørn: มันยังไม่เป็นอัลกอริธึมที่ใช้งานได้ดีทั่วไป Introsort เป็น quicksort แต่จะสลับไปที่ heap sort หากเกินความลึกที่กำหนดไว้ สิ่งนี้อนุญาตให้หนึ่งมีคุณสมบัติที่ดีของ quicksort แต่มักจะหลีกเลี่ยงกรณีทางพยาธิวิทยาแม้ว่าอัลกอริทึมจะเลือก pivots ที่ไม่ดีก็ตาม
Billy ONeal

1

เรียงแทรก

ใช้งานง่ายรวดเร็วมากในรายการขนาดเล็กและใช้ใน Merge Sort / Quicksort implementations เพื่อเพิ่มความเร็ว มีความเสถียรและทำงานใน O (n) ในรายการที่เรียงลำดับ (เมื่อเรียงตามลำดับจากน้อยไปหามาก)



1

ตัวกรองคาลมาน

มันถูกใช้อย่างหนักในการนำทางการติดตามเป้าหมาย (สำหรับเซ็นเซอร์เกือบทุกชนิด: เรดาร์, โซนาร์, FLIR, ladar) ตำราหนึ่งเล่มแสดงแอปพลิเคชันในตัวควบคุมดิสก์ไดรฟ์ ระบบควบคุมหุ่นยนต์มักใช้ตัวกรองคาลมาน


0

ภาษาที่พูดและเขียน

พวกเขาเป็นหนึ่งในอัลกอริทึมที่มีประสิทธิภาพที่สุดในการถ่ายโอนความรู้จากสิ่งหนึ่งไปยังอีก หากไม่มีภาษาแล้วจะไม่มีประชาสังคมและไม่สามารถถ่ายทอดข้อมูลได้


5
-1: อัลกอริทึมสามารถแสดงโดยใช้ภาษาธรรมชาติ แต่ภาษาธรรมชาติไม่ใช่อัลกอริทึม
Steven Evers

2
คุณจะบอกว่าอัลกอริทึมการบีบอัดไม่ใช่อัลกอริทึมหรือไม่? ทุกภาษาทำหน้าที่บีบอัดข้อมูลที่ถ่ายทอดจากแหล่งหนึ่งไปยังอีกทางหนึ่ง มีกฎเฉพาะที่ต้องปฏิบัติตาม (ไวยากรณ์) เช่นเดียวกับอัลกอริธึมอื่น ๆ และใช้อินพุต (ประสบการณ์ของคุณ) และสร้างเอาต์พุต (ความรู้) ที่แตกต่างกัน ฉันล้มเหลวที่จะดูว่าคุณไม่สามารถพิจารณาอัลกอริทึมภาษาได้อย่างไร
Malfist

มันล้มเหลวคำจำกัดความมาตรฐานทั้งหมดของอัลกอริทึมในหลาย ๆ หน้า
James Reinstate Monica Polk

0

กองโครงสร้างข้อมูลและขั้นตอนวิธีที่เกี่ยวข้องสำหรับการก่อสร้างและการบำรุงรักษากอง

และแสดงความเคารพต่อ quicksort แม้ว่ามันจะไม่ได้เป็นตัวเลือก แต่ก็เป็นหนึ่งในอัลกอริทึมพื้นฐานในการพัฒนาทางประวัติศาสตร์ของวิทยาศาสตร์คอมพิวเตอร์และเป็นยานพาหนะที่ดีสำหรับการทำความเข้าใจการวิเคราะห์ซ้ำและอัลกอริทึม มันสวยและใช่ฉันรักมัน


0

อัลกอริธึมการจัดทำดัชนีเช่น B-tree, B + -tree, ดัชนีแฮช, ดัชนีต้นไม้ไบนารีเป็นต้นเพื่อจัดทำดัชนีข้อมูลจำนวนมาก



-1

ขั้นตอนวิธีกำลังดุร้าย!

หลายคนประมาทอัลกอริทึมกำลังดุร้ายนี้ ที่จริงแล้วส่วนใหญ่จะใช้เพื่อแก้ปัญหาที่ไม่มีรูปแบบ ฉันรักมันมาก!


5
นั่นไม่ใช่อัลกอริทึม มันเป็นอัลกอริธึมชนิดหนึ่ง
อดัมเลียร์

มันเป็นวิธีการที่จะทำลายการเข้ารหัส
Amir Rezaei

ฉันคิดว่ามันถูกจัดหมวดหมู่เป็นอัลกอริทึมด้วย "เริ่มจาก x ถึง y ทำอะไรซักอย่าง" <--- อัลกอริทึมใช่มั้ย
xport

อัลกอริทึมคือชุดของขั้นตอนที่จะบรรลุได้เฉพาะงาน นั่นไม่เฉพาะเจาะจง
Anto

-5

เรียงลำดับฟอง!

ฟองเรียงลำดับไม่ได้ไม่ดีเท่าที่Bogosort นั่นคือเหตุผลที่ฉันลงคะแนนสำหรับการจัดเรียงฟอง


1
โปรดพิจารณาว่าทำไมอัลกอริทึมจึงมีความสำคัญและสำคัญคนดูเหมือนจะไม่เห็นด้วยกับเหตุผลที่ Bubble Sort อาจมีความสำคัญและสำคัญ
Tamara Wijsman

5
แม้โอบามารู้ว่าการจัดเรียงฟองเป็นวิธีที่ผิดไป
Joey Adams

@TomWij @Joey: ดูการอัปเดตของฉัน
xport
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.