VoyForums
[ Show ]
Support VoyForums
[ Shrink ]
VoyForums Announcement: Programming and providing support for this service has been a labor of love since 1997. We are one of the few services online who values our users' privacy, and have never sold your information. We have even fought hard to defend your privacy in legal cases; however, we've done it with almost no financial support -- paying out of pocket to continue providing the service. Due to the issues imposed on us by advertisers, we also stopped hosting most ads on the forums many years ago. We hope you appreciate our efforts.

Show your support by donating any amount. (Note: We are still technically a for-profit company, so your contribution is not tax-deductible.) PayPal Acct: Feedback:

Donate to VoyForums (PayPal):

Login ] [ Contact Forum Admin ] [ Main index ] [ Post a new message ] [ Search | Check update time ]


[ Next Thread | Previous Thread | Next Message | Previous Message ]

Date Posted: 14:21:44 03/21/02 Thu
Author: Hjálmtýr
Subject: Re: verkefni 4 vikublað 10
In reply to: 's message, "Re: verkefni 4 vikublað 10" on 12:49:01 03/21/02 Thu

>>>Mig langar til að fá það á hreint hvernig O() er
>>>fundið. Fór í soldið rugl í dæmatímanum
>>
>>Formlega skilgreiningin er í Kafla 2 í Algorithms
>>bókinni, en þar eru líka ýmsar reglur sem hægt er að
>>nota sér til
>>að einfalda sér útreikninginn og það er það sem ég hef
>>verið að gera í fyrirlestrum. T.d. fastar í hverjum
>>þætti
>>skipta ekki máli ( 3N er O(N), 0.001N er O(N) ).
>>Þegar tvö föll (þættir) eru lögð saman þá gildir það
>>fall sem vex
>>hraðast, t.d. 3N + 0.2N^2 er O(N^2), eða við getum
>>líka skrifað O(N) + O(N^2) = O(N^2). Þetta gildir þó
>>aðeins
>>um samlagningu, ekki margföldun eða veldishafningu.
>>
>>Annars ætla ég ekki að gefa fullkomna skilgreiningu á
>>O()-hugtakinu. Það er langskynsamlegast að lesa um
>>það í bókinni.
>
>ég var nú eiginlega bara að meina hvernig það væri
>fundið út í þessu tiltekna verkefni það er dæmi 4 á
>vikublaði 10

Já, sorrý.

Málið er að þessi hækkunarruna (1, 2, 4, 8, 16, ...) blandar aldrei saman oddatölusætum og jafntölusætum í
öllum fyrri umferðum Shellröðunar. Alltaf er verið að vinna með a[i] og a[i-h], og þar sem h er jöfn tala, þá
eru bæði i og i-h annað hvort jöfn tala eða bæði oddatala. Þetta gerist þar til h er sett sem 1, en þá er verið að
framkvæma hreina Innsetningarröðun. Á þeirri stundu er vektorinn í þessari röð:

1, N+1, 2, N+2, 3, N+3, 4, ... , N/2, N+N/2

Það er augljóst að talan 2 þarf að færast niður um 1 sæti til að komast í sitt rétta sæti. Síðan þarf talan 3 að
færast um 2 sæti (framhjá N+2 og N+1) til að komast í sitt rétta sæti. Sömuleiðis þarf 4 að færast um 3 sæti niður.
Svona gengur þetta þar til N/2 þarf að færast niður um N/2-1 sæti til að komast á réttan stað.

Heildarfjöldi færslna í þessari síðustu umferð Shellröðunar er þá: 1 + 2 + 3 + ... + N/2-1 = (N/2)(N/2-1)/2, sem
er u.þ.b. (N^2)/8 og það er O(N^2).

[ Next Thread | Previous Thread | Next Message | Previous Message ]

Post a message:
This forum requires an account to post.
[ Create Account ]
[ Login ]
[ Contact Forum Admin ]


Forum timezone: GMT-8
VF Version: 3.00b, ConfDB:
Before posting please read our privacy policy.
VoyForums(tm) is a Free Service from Voyager Info-Systems.
Copyright © 1998-2019 Voyager Info-Systems. All Rights Reserved.