mboost-dp1
Vise ord fra Bjarne Stroustrup
- Forside
- ⟨
- Forum
- ⟨
- Tagwall
windscape skrev:
Og hvis du mangler andet, er det vel fordi du bruger C/C++ eller et eller andet niche sprog uden et ordenlig bagvedliggende framework.
hvad mangler c++ med stl?
Altså, der er ikke ligeså mange algoritmer og containers som i c# og java....men jeg synes da vi er ok dækket ind :)
Quicksort is a sorting algorithm developed by C. A. R. Hoare that, on average, makes O(nlogn) (big O notation) comparisons to sort n items.
http://en.wikipedia.org/..
Happy now?
Wikipedia siger det også eksplicit.
Windcape (50) skrev:Ja, fordi O(n) er best-case for et dictionary , nemlig ja...
Så O(1) forsvandt lige pludselig ud af din verden?
huh?
Tak, jeg kan fint nøjes med min http://ww0.java4.datastructures.net/ frem for en fjollet matematisk tilgang.Ildhesten (53) skrev:#48 og #50
Go read Cormen et. al "Introduction to Algorithms", og kom så tilbage når du er klar til ikke blot at fjolle rundt ud fra dine egne definitioner.
Du ved, viden man kan PRAKTISK KAN BRUGE TIL NOGET.
Det er vist dig som fjoller rundt i din teoretiske verden.
Og hvis jeg skulle sammenligne f.eks. Bubble sort med Quicksort, så ville jeg kigge på
Bubble sort: O(n)
Quicksort: O(nlogn)
De har begge to en worst-case på O(n^2), så forklar mig lige hvorfor i overhovedet ville bruge worse-case til at beskrive dem med?
Medmindre i er nogle teoretikere som selvfølgelig ikke tænker på den praktiske applikation...
Bubble sort: O(n)
Quicksort: O(nlogn)
De har begge to en worst-case på O(n^2), så forklar mig lige hvorfor i overhovedet ville bruge worse-case til at beskrive dem med?
Medmindre i er nogle teoretikere som selvfølgelig ikke tænker på den praktiske applikation...
Windcape (56) skrev:Og jeg siger at i daglig tale er "on average" implicit.
Jeg syntes bare du sagde at
Wikipedia er forresten enig med mig i at man overordnet beskriver big O performance med average case performance.hvilket viste sig at være forkert.
Et eksempel på en datastruktur man ikke finder i de fleste standard libraries:
En kø, der kan holde et bestemt antal værdier, hvor man skal kunne opdatere positionen for et vilkårligt element i køen. Man kan selvfølgelig bruge en almindelig kø som er implementeret vha. en linked list og så fjerne elementet for derefter at genindsætte det. Det tager O(n) tid at fjerne elementet (både i worst-case og i gennemsnit, Windcape) og O(1) tid at indsætte det igen. Det hele kan gøres i O(1) tid hvis man implementerer sin egen variant af en doubled linked list. Det er altså ret vigtigt at man kan finde ud af det hvis man skal bruge det i en kritisk del af sit program.
EDIT: Det var måske ikke så klart formuleret. Jeg kan godt uddybe hvis det er...
En grund til worst-case kan være interessant over average case er i situationer hvor man skal være sikker på at algoritmen bliver færdig indenfor et vist tidsrum.
<joke on="true">
# Windcape nu skal du holde din datamatiker-kæft og høre på hvad de software engineers siger til dig!
Man er sgu ikke noget indenfor udvikling hvis du ikke kan FFT algoritmen i søvne, har læst Dijkstra & Hoare's "Structured Programming" fremragende notesæt fra 1972 (Academic Press) og brugt Big O aktivt! Fat det mayn!!
Ellers ender du bare som en alm. webapplication developer, og det har vi sgu bare ikke behov for her! Vi har behov for folk der kan gøre os stolte, som kan forklare konkrete og ekstreme matematiske formler som de ikke skal bruge til en skid indenfor de områder de beskæftiger sig i! Husk på, at der er mange matematikere, fysikere, astronomer, akademikere, onanister m.v. der programmerer, og de folk kan faktisk mere end bare at oprette et projekt i Visual Studio og lave løsninger som der rent faktisk er behov for! Vi skal nemlig allesammen være forskere, og dem der ikke vil det er nogen forpulede svanse som drak skoletiden væk, når de skulle bruge den på matematik og fysik! Det er nemlig dét livet drejer sig om alt i alt!
Wanker!!!
/>
# Windcape nu skal du holde din datamatiker-kæft og høre på hvad de software engineers siger til dig!
Man er sgu ikke noget indenfor udvikling hvis du ikke kan FFT algoritmen i søvne, har læst Dijkstra & Hoare's "Structured Programming" fremragende notesæt fra 1972 (Academic Press) og brugt Big O aktivt! Fat det mayn!!
Ellers ender du bare som en alm. webapplication developer, og det har vi sgu bare ikke behov for her! Vi har behov for folk der kan gøre os stolte, som kan forklare konkrete og ekstreme matematiske formler som de ikke skal bruge til en skid indenfor de områder de beskæftiger sig i! Husk på, at der er mange matematikere, fysikere, astronomer, akademikere, onanister m.v. der programmerer, og de folk kan faktisk mere end bare at oprette et projekt i Visual Studio og lave løsninger som der rent faktisk er behov for! Vi skal nemlig allesammen være forskere, og dem der ikke vil det er nogen forpulede svanse som drak skoletiden væk, når de skulle bruge den på matematik og fysik! Det er nemlig dét livet drejer sig om alt i alt!
Wanker!!!
/>
Jeg vil altså vove at påstå at man godt kan skrive sådan en stack, uden kendskab til big O.onetreehell (58) skrev:Det er altså ret vigtigt at man kan finde ud af det hvis man skal bruge det i en kritisk del af sit program.
Big O er interassant til dokumentation af ens struktur's hastighed til andre udviklere. Men altså ikke et krav til selve udviklingen i første omgang.
Ja. Og jeg har ikke sagt man ikke skal forstå det aspekt af det også, men jeg mener stadigvæk at average er den normale måde at sammenligne typiske algoritmer (som f.eks. sortering).onetreehell (58) skrev:En grund til worst-case kan være interessant over average case er i situationer hvor man skal være sikker på at algoritmen bliver færdig indenfor et vist tidsrum.
Windcape (60) skrev:
Jeg vil altså vove at påstå at man godt kan skrive sådan en stack, uden kendskab til big O.
Big O er interassant til dokumentation af ens struktur's hastighed til andre udviklere. Men altså ikke et krav til selve udviklingen i første omgang.
Big O notationen er et dokumentations værktøj. Det er absolut godt at bruge samme notation som alle andre når man skal kommunikere.
Men den bagvedliggende måde at analysere kode på er kritisk, når koden skal skrives.
<?xml version="1.0" encoding="UTF-8"?>
<online_pædagog_speech>
Well, hovedkernen i alt det her, er vel at der altid er noget at lære. Jeg kendte fx ikke FFT algoritmen, og vil da personligt dykke ned i den lidt senere. Det er også derfor vi har alle de her kammeratlige samtaler - det er for at lære og blive bedre, og fanden tag dog dem som ikke vil lære.
Note to self / selvtillids-boost: Der er sikkert også et eller andet arne_v ikke ved, og en skønne dag er det mig der er en kæmpe hotshot på et forum og fyrer en masse atrocities af i form af teknikker! <3
</online_pædagog_speech>
<online_pædagog_speech>
Well, hovedkernen i alt det her, er vel at der altid er noget at lære. Jeg kendte fx ikke FFT algoritmen, og vil da personligt dykke ned i den lidt senere. Det er også derfor vi har alle de her kammeratlige samtaler - det er for at lære og blive bedre, og fanden tag dog dem som ikke vil lære.
Note to self / selvtillids-boost: Der er sikkert også et eller andet arne_v ikke ved, og en skønne dag er det mig der er en kæmpe hotshot på et forum og fyrer en masse atrocities af i form af teknikker! <3
</online_pædagog_speech>
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.