Acasă Finanțe personale Lucrul cu funcțiile algoritmice - dummies

Lucrul cu funcțiile algoritmice - dummies

Video: Lucrul cu mai multe foi de calcul și Macro-comenzi în Excel 2007 2024

Video: Lucrul cu mai multe foi de calcul și Macro-comenzi în Excel 2007 2024
Anonim

O funcție în matematică este pur și simplu o modalitate de a mapa unele intrări la un răspuns. Exprimat într-un mod diferit, o funcție este o transformare (bazată pe operații matematice) care transformă (maparea) intrarea dvs. într-un răspuns.

Pentru anumite valori de intrare (de obicei, notate cu literele x sau n), aveți un răspuns corespunzător utilizând matematica care definește funcția. De exemplu, o funcție ca f (n) = 2 n vă spune că atunci când intrarea dvs. este un număr n, este numărul n înmulțit cu 2.

Folosirea dimensiunii intrării are sens, având în vedere că aceasta este o epocă critică și că viețile oamenilor sunt înghesuiți cu o cantitate tot mai mare de date. Făcând totul o funcție matematică este puțin mai puțin intuitivă, însă o funcție care descrie modul în care algoritmul își corelează soluția cu cantitatea de date pe care o primește este ceva pe care îl puteți analiza fără suport hardware sau software. Este, de asemenea, ușor de comparat cu alte soluții, având în vedere dimensiunea problemei dvs. Analiza algoritmilor este un concept minunat, deoarece reduce o serie complexă de pași într-o formulă matematică.

În plus, de cele mai multe ori, o analiză a algoritmilor nu este chiar interesată de definirea precisă a funcției. Ce vrei cu adevărat să faci este să compari o funcție țintă cu o altă funcție. Aceste funcții de comparație apar într-un set de funcții propuse care funcționează prost atunci când sunt contraste cu algoritmul țintă. În acest fel, nu trebuie să conectați numerele la funcții de complexitate mai mare sau mai mică; în schimb, vă ocupați cu funcții simple, premade și bine-cunoscute. Poate suna dur, dar e mai eficient și este similar cu clasificarea performanțelor algoritmilor în categorii, în loc să obțină o măsurare exactă a performanței.

Setul de funcții generalizate se numește notație Big O și întâlniți adesea acest set mic de funcții (puse în paranteze și precedate de o capitală O >) utilizate pentru a reprezenta performanța algoritmilor. Figura arată analiza unui algoritm. Un sistem de coordonate cartezian poate reprezenta funcția măsurată prin simularea RAM, unde abscisa (coordonata x) este dimensiunea intrării și ordonata (coordonata y) numărul de operațiuni rezultate. Puteți vedea trei curbe reprezentate. Dimensiunea intrărilor contează. Cu toate acestea, calitatea contează (de exemplu, atunci când se comandă probleme, este mai rapid să comandați o intrare deja aproape ordonată).În consecință, analiza prezintă un caz mai prost, f 1 (n), un caz mediu f 2 cel mai bun caz, f 3 (n). Chiar dacă cazul mediu ar putea să vă dea o idee generală, ceea ce vă interesează cu adevărat este cel mai rău caz, deoarece problemele pot apărea atunci când algoritmul dvs. încearcă să ajungă la o soluție. Funcția Big O este cea care, după o anumită valoare n0 (pragul pentru a considera o intrare mare), duce întotdeauna la un număr mai mare de operații având aceeași intrare decât funcția celui mai rău caz > f1

. Astfel, funcția Big O este chiar mai pesimistă decât cea care reprezintă algoritmul dvs., astfel încât, indiferent de calitatea intrării, puteți fi siguri că lucrurile nu se pot înrăutăți. Complexitatea unui algoritm în cazul celui mai bun, mediu și cel mai rău caz de intrare. Multe funcții posibile pot duce la rezultate mai slabe, dar alegerea funcțiilor oferite de notația Big O pe care o puteți utiliza este restricționată deoarece scopul său este de a simplifica măsurarea complexității prin propunerea unui standard. În consecință, această secțiune conține doar câteva funcții care fac parte din notația Big O. Următoarea listă le descrie în ordinea crescătoare a complexității: Complexitatea constantă O (1): În același timp, indiferent de cantitatea de intrare pe care o furnizați. În final, este un număr constant de operații, indiferent cât timp sunt datele de intrare. Acest nivel de complexitate este destul de rar în practică.

Complexitatea logaritmică O (log n):

Numărul de operații crește cu o rată mai mică decât cea de intrare, făcând algoritmul mai puțin eficient cu intrări mici și mai eficient cu cele mai mari. Un algoritm tipic din această clasă este căutarea binară.

  • Complexitatea liniară O (n): Operațiile cresc cu intrarea într-un raport de 1: 1. Un algoritm tipic este iterația, care este atunci când scanați o dată intrarea și aplicați o operație fiecărui element al acesteia.
  • Complexitatea liniaritmică O (n log n): Complexitatea este o combinație între complexitatea logaritmică și liniară. Este tipic unor algoritmi inteligenți folosiți pentru a comanda date, cum ar fi Mergesort, Heapsort și Quicksort.
  • Complexitatea patratică O (n 2
  • ): Operațiile cresc ca un pătrat al numărului de intrări. Când aveți o iterație într-o altă iterație (iterații imbricate, în știința informaticii), aveți complexitate patratică. De exemplu, aveți o listă de nume și, pentru a găsi cele mai similare, comparați fiecare nume cu toate celelalte nume. Alți algoritmi de ordonare mai puțin eficienți prezintă o astfel de complexitate: sortarea bulei, sortarea selecției și sortarea inserției. Acest nivel de complexitate înseamnă că algoritmii dvs. pot funcționa cu ore sau chiar zile înainte de a ajunge la o soluție.
  • Complexitatea cubică O (n 3 ): Operațiile cresc chiar mai repede decât complexitatea cuadratoare, deoarece acum aveți mai multe iterații imbricate. Atunci când un algoritm are această ordine de complexitate și trebuie să procesați o cantitate modestă de date (100, 000 de elemente), algoritmul dvs. poate rula de ani de zile.Când aveți o serie de operații care reprezintă o putere a intrării, este comun să vă referiți la algoritm ca
  • care rulează în timp polinomial. Complexitatea exponențială O (2 n ): Algoritmul ia de două ori numărul operațiilor anterioare pentru fiecare element adăugat nou. Când un algoritm are această complexitate, chiar și problemele mici pot dura pentru totdeauna. Mulți algoritmi care efectuează căutări exhaustive au complexitate exponențială. Cu toate acestea, exemplul clasic pentru acest nivel de complexitate este calculul numerelor Fibonacci.
  • Complexitatea factorilor O (n!): Un adevărat coșmar de complexitate datorită numărului mare de combinații posibile dintre elemente. Doar imaginați-vă: dacă intrarea dvs. este de 100 de obiecte și o operațiune pe computer durează 10 -6 secunde (o viteză rezonabilă pentru fiecare calculator, astăzi), veți avea nevoie de aproximativ 10
  • 140 pentru a finaliza cu succes sarcina (un timp imposibil de la vârsta universului este estimat la 10 14 ani). O problemă faimoasă a complexității factoriale este problema vânzătorilor care călătoresc, în care un vânzător trebuie să găsească cel mai scurt traseu pentru a vizita multe orașe și pentru a reveni la orașul de plecare.
Lucrul cu funcțiile algoritmice - dummies

Alegerea editorilor

Administrator de rețea: Zone de căutare inversă - dummies

Administrator de rețea: Zone de căutare inversă - dummies

Interogări DNS obișnuite sunt interogări de căutare înainte corespunde unui nume de domeniu complet calificat. O căutare inversă este opusul unei căutări forward: returnează numele de domeniu complet calificat al unei gazde pe baza adresei sale IP. Căutările inverse sunt posibile din cauza unui domeniu special numit ...

Rețea Elemente de bază: Clienți și servere - manechine

Rețea Elemente de bază: Clienți și servere - manechine

Computerul de rețea care conține hard disk-urile, imprimantele și alte resurse care sunt partajate cu alte calculatoare de rețea se numește un server. Acest termen vine în repetate rânduri, deci trebuie să-l amintiți. Scrie-o pe spatele mâinii tale stângi. Orice computer care nu este un server este numit client. Aveți ...

Retea Bazele: Poduri - dummies

Retea Bazele: Poduri - dummies

O punte este un dispozitiv care conecteaza doua retele astfel incat sa actioneze ca si cum ar fi o rețea. Podurile sunt utilizate pentru a împărți o rețea mare în două rețele mai mici din motive de performanță. Vă puteți gândi la un pod ca pe un repetor inteligent. Repetoarele ascultă semnale care coboară pe un cablu de rețea, amplifică ...

Alegerea editorilor

ÎMprumuta și tweak idei de la alte comunități online - dummies

ÎMprumuta și tweak idei de la alte comunități online - dummies

, Mai degrabă decât să ia ideile altcuiva complet pentru dvs. comunitate online, încercați să riffați pe aceeași idee, dar nu atât de mult încât este evident că nu sunteți creierul din spatele brainstorming-ului. Idei sunt acolo pentru a lua, dar nu ar fi mai degrabă văzute ca cineva inovatoare, nu cineva care scours pe web ...

Branding Blogul tău

Branding Blogul tău

Branding blog-ul tău merge mult spre a face dacă este ușor de recunoscut pentru cititorii tăi. Când vedeți un punct roșu în interiorul unui cerc roșu, ce magazin vine în minte? Ce zici de acele arcuri de aur? Un nume de marcă apare în minte atunci când vedeți simbolul swoosh? La fel ca magazinele populare, restaurantele și încălțămintea ...

Construiți un Blog Mama care este Sellable - dummies

Construiți un Blog Mama care este Sellable - dummies

Dacă obiectivul pe termen lung este de a vinde blogul dvs. ar trebui să o construiască cu acest scop în minte. Evitați asocierea prea intensă a blogului cu marca dvs. personală. Un blog care poate fi valoros cu orice scriitor la cârma trebuie să îndeplinească majoritatea, dacă nu toate, următoarele criterii: Blogul este concentrat ...

Alegerea editorilor

Cum să creați o nouă campanie de anunțuri LinkedIn - dummies

Cum să creați o nouă campanie de anunțuri LinkedIn - dummies

LinkedIn oferă servicii de publicitate pentru afacerea dvs. Dacă vă decideți să utilizați LinkedIn ca instrument de marketing, va trebui doar să obțineți o nouă campanie de anunțuri în lucrări. Când sunteți gata să începeți o nouă campanie, urmați acești pași:

Opțiuni de filtrare pentru anunțul dvs. LinkedIn - manechine

Opțiuni de filtrare pentru anunțul dvs. LinkedIn - manechine

Ce opțiuni de filtrare aveți pentru anunțul dvs. LinkedIn? Alte rețele de publicitate vă permit să filtrați publicul vizat de câteva atribute cunoscute ale persoanei care vă va vedea anunțul, sexul și locația membrilor din public. LinkedIn vă permite să faceți un pas mai departe permițându-vă ...

Oferind și primind viziuni pe LinkedIn - manechine

Oferind și primind viziuni pe LinkedIn - manechine

Deși mulți oameni cred că "Nu este ceea ce știi, știi, "care este unul dintre principalele motive pentru care LinkedIn este atât de valoros, mulți oameni (recrutorii, angajații, directorii executivi, investitorii și altele) sunt foarte interesați de ceea ce știi. În mod logic, oamenii care vă cunosc cel mai bine sunt oamenii din rețeaua dvs., care ...