Kasaysayan at Tungkol sa algorithm (History and About Algorithms)

1. Kasaysayan ng algorithm 

Sinuri ni pinagmulan, sinabi niya, sinabi algorithm mismo ay may kakaibang kasaysayan. Tangkaing Ang linguist upang matuklasan ang pinagmulan ng salitang ito, ngunit ang mga resulta ay hindi kasiya-siya. Sa wakas, ang mananalaysay ng matematika upang mahanap ang pinagmulan ng mga salita ay mula sa Arabic pangalan ng sikat na may-akda, Abu Ja'far Muhammad ibn Musa Al-Khuwarizmi. Al-Khuwarizmi pagkatapos ay basahin ang algorism. 

Al-Khuwarizmi magsulat ng isang libro na tinatawag na Kitab Al Jabar Wal-Muqabala na nangangahulugang "pagpapanumbalik ng libro at pagbabawas" (Ang aklat ng pagpapanumbalik at pagbabawas). Mula sa pamagat ng aklat din makuha namin ang salitang-ugat "algebra" (algebra). Baguhin ang isang salita mula sa algorism algorism lumilitaw algorithm bilang ng salita ay madalas malito aritmetika, kaya ang pagbabago ng suffix-cm-thm. Dahil ang mga pagkalkula gamit Arabic numerals ay naging isang bagay ng kurso, pagkatapos ay maaga o huli ang salitang dahan-dahang algorithm ay ginagamit bilang mga pamamaraan pagkalkula (computational) sa pangkalahatan, kaya ang pagkawala ng orihinal na kahulugan ng salita. Sa Bahasa Indonesia, ang salitang algorithm ay nasisipsip sa algorithm. 

2. Kahulugan ng algorithm 

"Algorithm ay isang pagkakasunod-sunod ng mga lohikal na mga hakbang ng problema tuos na nakaayos sa isang may sistema at lohikal na". Lohikal na mga salita ay mga keyword sa algorithm. Ang mga hakbang sa algorithm ay dapat na lohikal na at dapat ay magagawang upang matukoy ang karapatan o maling halaga. Sa ilang mga konteksto, ang algorithm ay ang pagkakasunud-sunod ng mga hakbang sa pagtutukoy upang isagawa ang isang tiyak na trabaho. Pagsasaalang-alang sa mga algorithm ng seleksyon ay, una, ang algorithm ay dapat na tunay. Ang ibig sabihin nito na ang mga algorithm ay magbibigay sa ang nais na output mula sa isang ibinigay na halaga ng input. Walang mga bagay na kasing ganda ng anumang mga algorithm, kung ibinigay sa maling output, ang algorithm ay tiyak na ay hindi isang magandang algorithm. 

Ang pangalawang pagsasaalang-alang na dapat na nabanggit ay na dapat naming makita kung gaano kahusay ang mga resulta nakakamit sa pamamagitan ng mga algorithm. Ito ay mahalaga lalo na sa mga algorithm upang malutas ang mga problema na nangangailangan ng pagtatantya resulta (na kung saan ay lamang ng isang diskarte ani). Ang algorithm ang dapat ma-bigyan ng magagandang resulta bilang malapit hangga't maaari sa aktwal na halaga. 

Third ay ang husay ng algorithm. Kahusayan ng mga algorithm ay maaaring matingnan mula sa dalawang bagay lalo oras at memorya kahusayan. Kahit na ang mga algorithm ay nagbibigay ng tamang output (ang diskarte), ngunit kung nagkaroon kami upang maghintay para sa mga oras upang makuha ang output, ang algorithm ay hindi normal magsuot, lahat ng tao ay nais ng isang mabilis na release. Katulad nito, ang memory, mas memorya na ginagamit, mas masama sa mga algorithm. Sa katunayan, ang sinumang tao ang maaaring gumawa ng ibang algorithm upang malutas ang isang problema, bagaman mayroong mga pagkakaiba sa pag-uuri algorithm, siyempre inaasahan namin ang parehong output. Kung nangyari ito, hanapin ang pinakamahusay na mga algorithm at mabilis. 

3. Algorithm at Programa 

Ang programa ay isang grupo ng mga computer pahayag, samantalang ang isang may sistema pamamaraan at yugto ng programa ay ang algorithm. Programa ng nakasulat gamit ang programming wika. Kaya ito ay maaaring sinabi na ang mga programa ay isang pagpapatupad ng programming wika. Ang ilang mga eksperto magbigay ng isang formula na: 


Programa = algorithm + Wika (mga istraktura ng data) 

Gayunpaman, istraktura at mga algorithm ng data ay din napaka malapit na nauugnay sa isang programa. Magandang pagpipilian ng mga algorithm na walang tumpak na istraktura ng data ay magiging hindi gaanong magandang programa, kaya masyadong ng kabaligtaran. 

Paggawa ng algorithm ay maraming kalamangan kabilang ang: 
1. Paggawa o pagsusulat ng mga algorithm ay hindi nakasalalay sa anumang wika programming, na nangangahulugan pagsusulat ng isang algorithm independiyenteng ng programming wika at pagpapatupad computer. 
2. Pagtatanda na algorithm ay maaaring isinalin sa iba't ibang mga wika programming. 
3. Anuman pemrogramnya wika, na ilalabas sa parehong output para sa parehong algorithm. 

Ang ilang mga bagay upang tandaan sa pagsasagawa ng mga algorithm: 
1. Teksto paglalarawan ng mga algorithm ay naglalaman ng mga hakbang sa pag-troubleshoot. Paglalarawan maaaring nakasulat sa anumang notasyon, ang pinaka-mahalaga ay madaling maunawaan at maintindihan. 

2. Walang standard notation sa mga algorithm ng teksto tulad ng pagtatanda na programming language. Sumulat ng pagtatanda na ginamit sa algorithm na tinatawag na algorithmic pagtatanda. 

3. Ang bawat tao'y maaaring gumawa ng mga panuntunan sa pagsulat at algorithmic pagtatanda mismo. Ito ay dahil ang algorithm ay hindi ang parehong teksto sa teksto ng programa. Gayunpaman, na simple algorithmic pagtatanda na isinalin sa tukoy na pagtatanda na programming language, ang pagtatanda dapat sumasang-ayon sa mga algorithmic pagtatanda na programming language sa pangkalahatan. 

4. Pagtatanda ay hindi algorithmic pagtatanda na programming language, dahil ang pseudocode sa algorithmic pagtatanda ay maaari lamang gawin ng isang computer. Upang ma natupad sa pamamagitan ng isang computer, pseudocode sa algorithmic pagtatanda ay dapat na isinalin o isinalin sa napiling pagtatanda na programming language. 

5. Algorithm Ang aktwal na ginagamit upang matulungan kaming nagko-convert ng problema sa isang programming language. 

6. Ang algorithm ay ang resulta ng haka-haka pag-iisip, Agat ipatupad ng isang computer, dapat maisalin ang algorithm sa isang pagtatanda na programming language. Mayroong ilang mga bagay na dapat tandaan sa pagsasaling-wika, lalo: 
1). Pahayag na Variable 
Upang mahanap ang deklarasyon ng variable sa paggamit programming language kapag kailangan ito hindi lahat ng mga programa wika. 

2). Pagpili ng uri ng data 
Kapag ang wika programming na gagamitin ay nangangailangan ng isang variable na deklarasyon pagkatapos ito dapat na ituring sa uri ng data halalan. 

3). Application tagubilin-tagubilin 
Ang ilang mga tagubilin magkaroon ng parehong paggamit, ngunit ang bawat isa ay iba't ibang mga kalamangan at disadvantages. 

4). Panuntunan Syntax 
Sa oras ng pagsusulat ng mga programa namin ay napapailalim sa mga panuntunan ng syntax ng programming wika na gagamitin. 

5). Tingnan ang mga resulta 
Sa sandaling ito kami ay hindi nag-iisip ng paggawa ng tingnan ang mga algorithm ay nagpakita ang mga resulta. Teknikal na mga bagay na sinusunod kapag nagko-convert ang mga ito sa programa. 

6). Ang operational tagatala o interpreter. 
Ang wika ng pagpo-program na ginamit ay kabilang sa batch na tagatala o interpreter. 

4. Algorithm Pagpapatupad mekanismo sa pamamagitan ng Processor

Mga Computer ay processor na isa lamang . Upang ipatupad ng isang computer , ang algorithm ay dapat na nakasulat sa pagtatanda na programming language kaya tinatawag na programa . Kaya ang programa ay ang paglikha o pagpapatupad ng mga teknikal na mga algorithm na nakasulat sa isang partikular na wika programming na maaaring ipinatupad ng computer.

Ang salitang " algorithm " at " programa " ay madalas mapaghahalinhinan sa paggamit . Halimbawa doon ay mga tao na sinasabi ng isang bagay tulad nito: "Data ng pagbubukod-bukod ng program gamit ang uri seleksyon algorithm " . O mga tanong na tulad nito: "? Paano ang algorithm at graphics ilarawan ang programa " . Kung mayroon kang maunawaan ang kahulugan ng mga algorithm na nabanggit bago , maaari mong makilala sa semantiko mga algorithm at mga programa .

Ang algorithm ay sumusukat ng solusyon ang problema, habang ang programa ay ang pagsasakatuparan ng mga algorithm sa programming wika. Programa ng nakasulat sa isang gawain programming language at programming Binanggit programming ( programming ) . Ang bawat hakbang ng programa nabanggit na pahayag o mga tagubilin. Kaya, sa isang hanay ng mga nakabalangkas na programa pagtuturo . Kung ang isang pagtuturo pinaandar , ang mga operasyon ay tapos alinsunod sa mga tagubilin sa computer.

Sa malawak na balangkas nakaayos ang computer na sa apat na mga pangunahing mga bahagi lalo , piranti input, output piranti , ang pangunahing yunit processor , at memory . Ang pangunahing yunit processor ( Central Processing Unit - CPU ) ay ang " utak " ng mga computer, na function upang isagawa ang pangunahing mga pagpapatakbo tulad ng mga operasyon ng paghahambing , ang bilang ng mga operasyon , basahin ang mga pagpapatakbo , at isulat ang mga operasyon . Memory ay isang functional na bahagi o mengingatingat store.

Naka-imbak sa memorya ay ang programa ( ito ay naglalaman ng mga operasyon na ginawa ng mga CPU ) at data o impormasyon ( na kung saan ay ginagamot sa pamamagitan ng pagpapatakbo) . Piranti input at output ( I / O device) ay mga aparato o mga programa upang ipasok ang data sa memory , at mga tool sa computer na ginamit upang makipag-usap ang mga resulta ng kanilang mga gawain. Mga halimbawa ng mga input piranti bukod sa iba pa , key board ( keyboard ) , scanner ( scanner ) , at disk ( disk ) . Sample na output ay piranti , props screen ( monitor ) , ang printer ( printer ) , at discus .

Ang ika-apat na bahagi ng mekanismo ng nasa itaas ay maaaring ipinaliwanag bilang mga sumusunod . Una, ang programa kasama sa memory ang computer . Kapag ang programa ay ipinatupad ( pinaandar ) , ang bawat pagtuturo na na- imbak sa memorya ay ipinadala sa CPU . CPU gumagana operasioperasi tugma sa ang mga tagubilin.

Kung ang isang operasyon ay nangangailangan ng data , ang data ay basahin mula sa input piranti , naka-imbak sa memorya at ipadala sa CPU para sa mga pagpapatakbo na kailangan ngayon lang . Kapag ang proseso ng paggawa ng produkto o ang impormasyon , mga produkto na naka-imbak sa memorya , at memorya pagpapawalang sa huling isyu piranti output (eg upang ipakita ito sa screen monitor ) .

5. Pagsusuri Ang isang algorithm

Kapag sinusubukan mga tao na putulin ang problema, mga pamamaraan o mga pamamaraan na ginamit upang malutas ang mga problema na maaaring magbago ng maraming ( hindi lang isa) . At pinili namin ang kung alin ang pinakamahusay kasama ng mga diskarte . Ito ay ang parehong na may mga algorithm , na nagbibigay-daan sa isang problema sa malutas sa pamamagitan ng iba't ibang mga paraan at logic . Ang tanong ay kung paano upang masukat ang algorithm na kung saan ay ang pinakamahusay na ? Ang ilan sa mga kinakailangan upang maging isang mahusay na algorithm ay:
isang . Paniniwala High -level ( realibility ) . Ang mga resulta na nakuha mula sa proseso ay dapat na high fidelity at totoo .

b. Pagpoproseso ng kahusayan ( mababang gastos ) . Ang proseso ay dapat na makumpleto sa lalong madaling panahon at dalas ng mga kalkulasyon ay ang mga maikling panahon.

c. Pangkalahatang kalikasan . Hindi isang bagay upang bayaran lamang ng isang kaso lamang , kundi maging para sa iba pang mga mas pangkalahatang mga kaso.

d. Maaaring binuo ( napapalawak ) . Ito ay dapat na isang bagay na maaari kaming karagdagang palawakin sa umiiral na mga pagbabago na kinakailangan.

e. Madaling maunawaan . Sinuman kung sino ang makakakita , siya ay magagawang upang maunawaan ang iyong mga algorithm. Mahirap dimengertinya isang programa ay gagawa pagpapanatili mahirap di - ( pamahalaan ) .

f. Mataas na maaaring dalhin ( maaaring dalhin ) . Maaaring madaling ma- ipinapatupad sa iba't-ibang mga platform ng computer.

g. Tiyak na pag- (kanan , kanan, lubusan ) . Ang bawat pagtuturo ay dapat na nakasulat na mag-ingat at walang duda , samakatuwid ang anumang mga tagubilin ay dapat na tahasang ipinahayag at walang processor tinanggal dahil ito ay itinuturing na maunawaan . Dapat na malinaw at tiyak ang bawat hakbang.

Halimbawa: Magdagdag ng 1 o 2 sa x .
Mga tagubilin sa pag-aalinlangan .

h. May hangganan bilang ng mga hakbang o mga tagubilin at tiyak. Iyon ay , para sa parehong numero ng kaso , ay dapat na naayos tiyak na mga panukala at kahit na ang data nito ay iba .

i. Epektibong . Hindi namin maaaring magkaroon ang mga tagubilin ay maaaring hindi nagawa sa pamamagitan ng mga processor run .

Halimbawa: Kalkulahin ang root 2 na may perpektong katumpakan.
Tagubilin sa itaas ay hindi epektibo , kaya epektibo ang pagtuturo ay binago .
Halimbawa: Kalkulahin ang Roots ng dalawa hanggang limang digit sa likod ng mga kuwit .

j. Output -produce tumpak. Kung ang algorithm ng mga lohikal na hakbang na sinundan maingat pagkatapos ay gumawa ng ninanais na output .

Habang ang pamantayan ayon sa Donald E. Knuth algorithm ay:
a) Input : algorithm ay maaaring magkaroon zero o higit pang mga inputan mula sa labas .
b) Output: algorithm ay dapat may hindi bababa sa isang prutas output .
c) katiyakan ( tiyak ) algorithm ay may mga tagubilin, ang mga tagubilin sa malinaw at hindi malabo .
d) pagkamay-hangganan (walang limitasyon ): ang algorithm ay dapat may isang pagpapahinto point ( pagtigil ng papel ) .
e) Bisa ( tumpak at mahusay na ) algorithm hangga't maaari ay dapat na ipinatupad at epektibo . Mga halimbawa ng hindi epektibong pagtuturo ay: A = A + 0 o A = A * 1

Ngunit mayroong ilang mga programa na ang talagang dinisenyo upang unterminatable : hal ng Operating System .

6. Paghahatid ng algorithm

Maaari nagbabalangkas Paghahatid ng mga algorithm sa dalawang anyo lalo catering , pagsulat at mga larawan . Ang algorithm na iniharap sa sulat sa mga tiyak na kaayusan wika (tulad ng Indonesian Ingles o ) at pseudocode .

Pseudocode ay code na katulad ng aktwal na programming code tulad ng Pascal o C , upang mas tumpak ginagamit upang ilarawan ang isang algorithm na kung saan ay Nakipag-ugnayan sa programmer . Habang ang mga algorithm na iniharap na may larawan , halimbawa sa Flowchart . Sa pangkalahatan , ang pseudocode ipahayag ang mga ideya impormal nasa proseso ng Muling pagbubuo ng mga algorithm . Ang isang paraan upang bumuo ng palsipikado code ay upang mabatak ang mga panuntunan ng pormal na wika na kung saan ang huling bersyon ng mga algorithm ay ipinahayag . Diskarte na ito ay karaniwang ginagamit bilang ang wika programming na gagamitin ay na- kilala dahil sa simula .

a) Flowchart
Flowchart ay nasa anyo ng isang daloy ng tsart ng mga algorithm sa isang programa , ang pagtatakda ng uka ng program. Flowchart ay isang graphical na representasyon ng mga hakbang at pagkakasunud-sunod ng mga pamamaraan ng isang programa .

Flowchart upang makatulong na analyst at mga programmer upang malutas ang mga segment sa isang mas maliit at tumulong sa pag-aaral ng iba pang mga alternatibo sa ang pagpapatakbo. Flowchart ay isang larawan o isang tsart na nagpapakita ng ugnayan sa pagitan ng ang pagkakasunod-sunod at sa kanyang mga pahayag . Ang larawan ay ipinapakita na may isang simbolo . Kaya bawat simbolo ay kumakatawan sa isang tiyak na proseso. Habang ang proseso ay isinalarawan sa isang pagkonekta linya.

Sa pamamagitan ng paggamit ng Flowchart ay makakatulong sa amin upang gawin ang check nakalimutan mga bahagi sa pag-aaral ng problema . Bilang karagdagan Flowchart ay kapaki-pakinabang bilang isang pasilidad para sa komunikasyon sa pagitan ng mga programmer nagtatrabaho sa isang koponan ng proyekto din .

Mayroong dalawang mga uri Flowchart naglalarawan ang proseso sa pamamagitan ng mga computer , na kung saan ay ang mga:
1 . Flowchart system na ay isang tsart na may ilang mga simbolo na ilarawan ang pagkakasunod-sunod ng mga pamamaraan at iproseso ang isang file sa isang file sa media sa iba pang media , sa isang system sa pagpoproseso ng data.

2 . Flowchart programa na ay isang tsart na may ilang mga simbolo na ilarawan ang pagkakasunud-sunod ng proseso at ang ugnayan sa pagitan ng mga proseso nang detalyado sa isang program.

Sa program pagmamanupaktura Flowchart walang standard formula o ganap na likas na katangian . Dahil Flowchart ay isang resulta ng pag-iisip sa pag-aaral ng problema sa computer. Hanggang sa Flowchart -produce maaaring mag-iba mula sa isa programmer sa isa pa. Gayunman, ang isang malawak per paggamot ay madalas na binubuo ng tatlong pangunahing seksyon , lalo :
1. input
2. Pagpoproseso at
3. pagbubuhos

Para sa pagproseso ng data gamit ang isang computer , isang pagkakasunod-sunod ng problema pagkapira-piraso patakaran :
1. START , ay naglalaman ng mga pahayag upang ihanda ang mga kagamitan na kailangan upang matugunan ang mga problema pagkapira-piraso .
2. BASAHIN , puno ng aktibidad - pahayag upang basahin ang data mula sa isang input equipment.
3. PROCESS , puno ng mga aktibidad na may kaugnayan sa pagkapira-piraso ng tanong ayon sa mga nabasa na data .
4. Sumulat , ay naglalaman ng mga pahayag upang i-record ang mga resulta ng mga aparatong output .
5. END , dulo pagpoproseso ng gawain.

Kahit na walang mga pamantayang batas at regulasyon ng samahan Flowchart , ngunit may ay isinaayos :
1. Iwasan ang mga hindi kinakailangang pag-uulit ng proseso at ang convoluted logic sa paraan na ang proseso pinaikling .
2. Ang paraan na ang proseso ng inilarawan mula sa itaas hanggang sa ibaba at ibinigay na mga arrow upang linawin .
3. Ang isang Flowchart ay nagsisimula mula sa isang punto ng START at nagtatapos sa END .

b) pseudocode

Pseudocode ay kung paano sumulat ng isang algorithm para sa mataas na antas (antas ng mas mataas na rate) . Karaniwan pseudocode ay nakasulat sa isang kumbinasyon ng Ingles at notation sa matematika . Karaniwan isang pseudocode hindi masyadong nakadetalye kumpara sa isang programa .

Mga Pagkakaiba Flowchart at pseudocode :
Flowchart : 
- Simbolo na ginamit sa form na mga larawan 
- pamantayan 
- mag-aari 
- Hindi direktang ginawa programa 
- Kind mga plano

 Pseudocode :
- Kahawig na ginamit programa code mataas wika 
- hindi sa standard 
- madaling basahin 
- Maaaring direktang ginawa sa anyo ng mga programa 
- Ito ay halos tulad ng pagpapatupad

7. Istraktura Patakaran sa algorithm

Algorithm ay naglalaman ng mga hakbang sa pag-troubleshoot ng problema . Ang ganitong mga panukala ay maaaring runtunan action ( pagkakasunud-sunod ) , pagpili ng pagkilos (pagpili) , ang pag-uulit ng mga aksyon ( iteration ) o isang kombinasyon ng tatlo . Kaya ang pangunahing istraktura ng pag-unlad algorithm tatlong mga uri :
1 . istraktura Runtunan
Ginamit sunud statement o pagkakasunud-sunod sa program .
2 . istraktura ang Pinili
Ginagamit para sa mga programa na gamitin ang halalan o kundisyon na isinasagawa .
3. Pag-uulit Istraktura
Ginamit ang pahayag sa programa ay pinaandar paulit-ulit .

Sa algorithm , hindi magsuot ng simbol-simbol/sintaks ng isang partikular na wika programming , ngunit isang pangkalahatang likas na katangian at hindi nakasalalay sa isang programming language kung ano pa man . Pagtatanda , pagtatanda algorithm ay maaaring magamit para sa lahat ng mga wika programming kahit saan .

Comments

Popular Posts