Permalänk
Medlem

Data Strukturer

Tjena alla,
Mitt problem ligger i att jag brottas med ett par frågor som jag måste få svar på. Frågorna handlar om diverse sorteringsalgoritmer. En hel del har jag löst själv men jag har ett par som jag varken hittar svar på i Boken eller på google.
Om någon skulle orka och hjälpa mig åtminstone med något av de så är jag tacksam.
Nu till mina frågor.

1. Jag ska beskriva i text hur man kan använda en stack för att avgöra om en fil innehåller en samling matchande parenteser.
(Dvs start och slutparenteser är nästlade på ett korrekt sätt)

2. Varför är QuickSort bra trots att den är kvadratiskt i värsta fallet?

3. Varför använder man Big O notation tex O (NlogN) för att beskriva tidskomplexitet för olika algoritmer. Vilka för och nackdelar kan du se ?

4. Beskriv hur man kan kompaktera en fil med tecken. Om man behöver skicka texten över ett nät måste man på mottagarsidan kunna packa upp texten. Beskriv två strategier för hur mottagaren kan få reda på översättningen.

Det var allt, jag fortsätter läsa och googla i hop om att hitta något + med ert hjälp ska det nog gå vägen ..

Permalänk
Medlem

1. Pusha vid '(', Popa vid ')', om stacken är tom innan du popar är det falskt. När du gått igenom alla '(', ')' och stacken inte är tom så är det också falskt. Annars sant.

2. Beror på hur man väljer pivotelementet. Oftast blir det inte så dåligt, annars tror jag den kräver mindre minne än Mergesort. Jag skulle nog kört med Merge om jag fick välja =/

3. Det beskriver hur exekveringstiden växer vid större indata, vilket är viktigt. Spelar ingen roll om du optar din algo med assembler när ändå exekveringstiden växer i kvadrat. En dåligt implementerad nlogn-algoritm kommer ändå vara snabbare tillslut.

Visa signatur

Perl - Made by Idiots, Java - Made for Idiots, C++ - Envied by Idiots

Permalänk
Medlem

Sunray man tackar så mycket

Permalänk
Medlem

4. (jag förutsätter att det handlar om kryptering)
Ett sätt är att alla användare har två nycklar, en publik och en privat, den publika känner alla till och den privata känner bara ägaren till. Om person A då vill skicka någonting till person B så kan A kryptera med Bs publika nyckel, sen när B tar emot det så kan han dekrptera med sin privata nyckel. Alltså kan man bara kryptera med den publika och dekryptera med den privata.

Ett annat är om person A ska skicka till B så kan dom göra såhär:
A och B har varsin privat nyckel, A krypterar en fil med en temporär nyckel och skickar den krypterade filen till B. A krypterar även det temporära lösenordet med sin privata nyckel och skickar även det till B. B krypterar då den krypterade temporära nyckeln (dubbelkrypterar dvs) och skickat tillbaka det till A. Då dekrypterar A det med sin privata nyckel och skickar det till B, då kan B först dekryptera den temporära nyckeln med sin privata och sen använda den till att dekryptera filen.

Edit-
Hm, kanske inte skulle vara kryptering.. det handlade ju om sorteringsalgoritmer ??

Visa signatur

I just love the fact that there is a global integer variable named 'i'. Just think, you will never need to declare your loop variable again!
To avoid collisions where a loop that uses 'i' calls another function that loops with 'i', be sure to stack 'i' and restore it when your function exits.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Myris
4. (jag förutsätter att det handlar om kryptering)
Ett sätt är att alla användare har två nycklar, en publik och en privat, den publika känner alla till och den privata känner bara ägaren till. Om person A då vill skicka någonting till person B så kan A kryptera med Bs publika nyckel, sen när B tar emot det så kan han dekrptera med sin privata nyckel. Alltså kan man bara kryptera med den publika och dekryptera med den privata.

Ett annat är om person A ska skicka till B så kan dom göra såhär:
A och B har varsin privat nyckel, A krypterar en fil med en temporär nyckel och skickar den krypterade filen till B. A krypterar även det temporära lösenordet med sin privata nyckel och skickar även det till B. B krypterar då den krypterade temporära nyckeln (dubbelkrypterar dvs) och skickat tillbaka det till A. Då dekrypterar A det med sin privata nyckel och skickar det till B, då kan B först dekryptera den temporära nyckeln med sin privata och sen använda den till att dekryptera filen.

Edit-
Hm, kanske inte skulle vara kryptering.. det handlade ju om sorteringsalgoritmer ??

tack, kanske får ut nåt av ditt svar , men en mindre algoritm skulle inte vara så dumt. men som sagt tack ändå

Permalänk
Glömsk

kompaktera = komprimera?

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.