Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Stacksortering

Postades av 2005-09-07 15:22:46 - Jan Ljungkvist, i forum c++, Tråden har 7 Kommentarer och lästs av 792 personer

Hej!

Jag undrar om någon vet hur man sorterar en lista med två stackar?

Mvh
Jan


Svara

Sv: Stacksortering

Postades av 2005-09-07 17:34:50 - Martin Adrian

Vad är en "lista med två stackar"?

En stack går inte att sortera eftersom den är just en stack (sist in, först ut).

Om du har en lista eller en vector är det bara att göra std:sort(minlista.begin(), minlista.end());
(under förutsättning att elementen går att jämföra med "<")

Berätta lite vad du har för data så är det enklare att hjälpa dig.


Svara

Sv:Stacksortering

Postades av 2005-09-07 18:38:40 - Håkan Borneland

Hej!

Man använder två stackar för att sortera listan, kallas för Stacksortering (eng. StackSort).
Finns på nätet info, sök på Stacksort.
Har glömt hur det gick till (har lösningen hemma).
Men på ett ungefär, läs ett värde från listan och lägg i ena stacken.
Läs ett nytt värde från listan, jämför med värde i första stacken.
Om det är t.ex. större lägg det i den andra stacken.
Är det mindre, flytta det första värdet till andra stacken och lägg ner det senaste i den första.
Sedan läser man in värdena tillbaka till listan, en stack i taget.
O.s.v o.s.v.
Bara så att principen framgår lite grand.
Som sagt har glömt den exakta logiken för hur algoritmen är uppbyggd.
Jag stötte på den som ett exempel på sortering, när jag läste på universitetet.
Vi hade den som en lab. övning, kanske samma här?

//Håkan


Svara

Sv:Stacksortering

Postades av 2005-09-07 19:16:49 - Jan Ljungkvist

Hej Martin,

Jo, det är så att jag har en lista med innehåll. Listans innehåll ska flyttas till de bägge stackarna på ett sätt som jag inte vet hur. Och så ska man kunna sortera listan mha de bägge stackarna. Kruxet är att jag inte vet hur prioriteten ska vara. Dvs hur de stoppas in i stackarna.

/Jan


Svara

Sv: Stacksortering

Postades av 2005-09-07 21:12:25 - Martin Adrian

Hade glömt bort stacksortering. Principen är följande

Du har två stackar (s1 & s2) som du flyttar element emellan. Se det som att listan börjar i S1 och fortsätter i S2.
(s1 har högsta talet på toppen och s2 har lägsta talet på toppen)

---- S1 S2--------
2 4 6 8 10 12 14

När man skall stoppa in ett tal t.ex. 11
flyttar man talen från S2 tills 11 ligger mellan toppen i respektive stack

---------S1 S2----
2 4 6 8 10 12 14

Sedan stoppar man in 11 i antingen S1 eller S2 (spelar ingen roll vilken)

-----------S1 S2----
2 4 6 8 10 11 12 14
Om man sen skall stoppa in 7 flyttar man från S1 till S2
---S1 S2------------
2 4 6 8 10 11 12 14
och så vidare tills alla talen är instoppade.

Edit: formattering


Svara

Sv: Stacksortering

Postades av 2005-09-07 21:28:15 - Håkan Borneland

Här kommer en lösning med listan som Jan nämde.

<b>L: p e k a v s</b>
<b>S1:</b>
<b>S2:</b>

Läs från början på listan lägg i S1.
<b>S1: p</b>
<b>S2:</b>

Läs nästa från listan. Jämför med det översta i S1.
Om "mindre" lägg i S2 annars i S1.
Fortsätt tills listan är tom.
Ser ut så här efter första inläsningen.
<b>S1: p v</b>
<b>S2: e k a s</b>

Läs tillbaka till listan. Ta det "största" av de två översta i varje stack.
Listan blir då så här.
<b>L: v s p a k e</b>

Läs tillbaka från slutet av listan enligt ovanstående princip.
Blir så här
<b>S1: e k p s v</b>
<b>S2: a</b>

Tillbaka till listan enligt ovanstående.
Listan ser då ut så här:
<b>L: v s p k e a</b>

Läs från slutet på listan igen o.s.v. o.s.v. ......
Sorteringen är klar när man läst från listan, och inget element hamnat i S2.

//Håkan


Svara

Sv:Stacksortering

Postades av 2005-10-02 17:49:18 - Jan Ljungkvist

Tack alla som hjälpte mig med detta problem. Det löste sig till slut.
/Jan


Svara

Sv: Stacksortering

Postades av 2005-10-02 20:29:26 - Håkan Borneland

Gôtt!!

//Håkan


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 617
27 953
271 709
5 721
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies