Sisekaemuslik

Posted by Jaana on Nov 23rd, 2006

Kui sa oled IT inimene, siis sa saad ehk aru sellest tekstist, kui sa ei ole it inimene siis vaata järgmist lõiku:
igaljuhul mul on hetkel käsil sorteerimisalgoritmide analüüs, igast udupeened algoritmid plus veel üks eriti udupeen introsort/introspective sort/ ehk siis minu loodud tõlke järgi sisekaemuslik meetod, mis peaks olema hästi taibukas ja kiire… alguses alustab sorteerimist kiirsordiga ja kui asi võssa hakkab minema, läheb kuhjameetodile üle…

igal juhul peaks ta töötama umbes sama kiirelt kui kiirmeetod (quicksort) ja üldiselt kiiremini kui teised kiirsordi laadsed. no ma siis kirjutasin introsorti koodi ära ja hakkasin testima …

no ja krt ükskõik kuda ma need elemendid massiivis paika panen - vastupidises järjekorras, õiges järjekorras või mida iganes, introsordi tööaeg kahtlaselt aeglane no nii 2-3 korda aeglasem, kui kiirsort, ühildusmeetod ja teised tublimad… kahtlane… mässan ja mässan (Jaana mässab ;);)), uurin netist et noh pmst introsort peaks oma ülima tubliduse saavutama siis kui kiirsordil on oht töötada ruutkeerukusega, siis uurin kuda saavutada quicksordi halvimat juhtu (muide väga raske ja haruldane)

ja siis lõpuks avastasin…

//sorteerimisalgoritm alustab massiivi sorteerimist kiirmeetodiga ning kui selle rekursiivsete
//väljakutsete arv ületab arvu maksrekursioone (ehk läheneb ruutkeerukusele), siis jätkatakse sorteerimist kuhjameetodiga.
public void sisekaemuslikmeetod(int[] massiiv, int maksrekursioone) {
while(kiirmeetodirekursioonidearv < maksrekursioone) {
kiirmeetod(massiiv, 0, massiiv.length - 1);
}
kuhjameetod(massiiv);
}

ehk siis, ma kõigepealt sortisin kiirmeetodiga massiivi ära ja siis igaksjuhuks sorteerisin veel kuhjameetodiga üle… sellest ka topelt aeg… arva ära, kaua ma seda viga otsisin :D

Kui sa oled mitte-IT inimene, siis sa saad ehk aru sellest tekstist:
Jaanal on arvutis üks programm, mis peab lahendama üht konkreetset ülesannet, selle programmi sees on ülesande lahendamiseks kaks erinevat meetodit. Programm on kaval, ta algul hakkab ülesannet lahendama ühe meetodiga ja kui selgub, et selle meetodiga läheb jõle kaua aega, siis annab lahendamise üle teisele tublile töömehele. Ühesõnaga kui esimene meetod hakkama ei saa annab ta töö teisele üle, aga ta annab selle töö teisele üle ainult, siis kui ta hakkama ei saa… Ühesõnaga see tubli programm (mille sees on kaks tublit töömeest) peaks probleemi lahendama vähemalt sama kiiresti kui teised aga tavaliselt ikka kiiremini.

No ja mis mul juhtus, see tubli programm, mis peaks teistest kõigist tublim olema… töötas alati kõige aeglasemalt, lausa kaks korda aeglasemalt…

arva miks :P?

sellepärast, et programm mitte ei teinud seda, mida ma tahtsin, et ta teeks, vaid seda, mida ma käskisin tal teha…

seega, tegelik oli selline:

esimene meetod hakkas ilusti ülesannet lahendama, tavaliselt tal ei tekkinud selle lahendamisega probleeme ning ei olnud ka vajadust, ülesande lahendamine teisele töömehele üle anda…

aga mina olin programmil käskinud nii teha:

kõigepealt las esimene lahendab ülesande ära ja siis teine lahendagu igaksjuhuks üle…

sellest siis ka selle suure programmi topeltlahendusaeg …

ja arva ära, kaua ma seda topelttööaja põhjust taga otsisin :D?

Vajan järelaitamistunde SML-is

Posted by Jaana on Nov 21st, 2006

Kontrolltöö esimene katse 1.1 punkti
Teine kontrolltöö katse 2.2 punkti -1 punkt teise katse tegemise eest

Jaana on loll…

Ma mõtlen,et …

Posted by Jaana on Nov 16th, 2006

kuidas tappa laiskloom minu sees?

Vestel Child Lock

Posted by Jaana on Nov 14th, 2006

Ma panin oma telekale lapseluku peale… ja nüüd ma ei saa programme vahetada… ja ma ei saa seda lukku ka maha… tubli olen…

My heroeines

Posted by Jaana on Nov 7th, 2006

Tänased kangelased, Kristi ja Maria, mõlemad on nad sündinud 7.novembril ja mõlemad on hästi kallid ja toredad. Õnne teile :)!
kristi 1.JPGIMG_8331 1.jpg