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


Snabb sortering

Postades av 2002-04-24 11:44:32 - Jens Kangosjärvi, i forum visual basic - allmänt, Tråden har 12 Kommentarer och lästs av 788 personer

Någon som har tips på hur man sorterar stora mulitidimensionella arrayer på snabbast möjliga sätt?

/JensaK



Svara

Sv: Snabb sortering

Postades av 2002-04-24 11:52:08 - Niklas Jansson

På hur många kolumner vill du sortera?
Är det nästan sorterat eller helt slumpmässigt?

/Niklas Jansson


Svara

Sv: Snabb sortering

Postades av 2002-04-24 11:56:08 - Jens Kangosjärvi

Allt mellan 1 och 10 kolumner, hur osorterat som helst.

/JensaK


Svara

Sv: Snabb sortering

Postades av 2002-04-24 12:16:25 - Sven Åke Persson

hej
Du kan ta hem mitt uppskick QuickSort Array
och bygga om efter ditt behov Programarkivet:Sortera Array QuickSort

mvh
Sven


Svara

Sv: Snabb sortering

Postades av 2002-04-25 15:27:20 - Peter Holm

mergesort skall det vara.

/peterh


Svara

Sv:Snabb sortering

Postades av 2006-05-16 10:28:53 - Axel Nilsson

funkar det på flera kolumner?

om jag har

3 kalle
2 östen
1 sverker

och jag vill sortera på båda kolumnerna?

jag vill alltså ha

1 sverker
2 östen
3 kalle

...inte
1 kalle
2 sverker
3 östen

alla kolumner skall "hänga med" i sorteringen, så att inte bara kolumn 1 sorteras - helt lönlöst - och det är tyvärr så de flesta sorteringsalgoritmer funkar - de går bara på en kolumn och hanterar inte det inbördet förhållandet mellan raderna.

om jag har t ex

obs vikt längd namn
1 50 1.60 adam
2 45 1.53 kalle

så är det ju inte acceptabelt att det blir
1 45 1.53 adam

då adam får helt fel uppgifter.

finns någon som har en bra multikolumn sort???


Svara

Sv: Snabb sortering

Postades av 2006-05-16 11:02:00 - Sven Åke Persson

Skall man göra sådana sorteringar använder man SQL
Sen om man får välja skall man undvika multidimensiona arrayer
Mycket bättre att göra en enda lång där de olika kolumnerna börjar på ett visst fack.

Eller så gör man tex 10 st enkla arrayer.
Då är det lätt att koppla ihop att fack 10231
i den ena arrayen hör ihop med 10231 i array 9


Svara

Sv: Snabb sortering

Postades av 2006-05-16 11:52:03 - Niklas Jansson

För det första, Axel, så startar du en fyra år gammal tråd.
För det andra, en algoritm handlar inte ett dugg om vilka kolumner du har och hur de hänger ihop. Det är pissenkelt att modifiera precis vilken algoritm som helst till att sortera radvis i en flerdimensionell vektor.


Svara

Sv:Snabb sortering

Postades av 2006-05-16 12:07:07 - Axel Nilsson

jag sökte på det jag var intresserad av och postade där i. om alla gjorde det så skulle man ha mindre trådar, som det är nu så finns många trådar om samma ämnen. men du menar att det finns ett bäst före datum på trådarna och en timelimit som man inte får posta efter?

om du vill kan jag starta en ny tråd ang detta. det kanske man borde då ingen riktigt bra generell sorterare faktiskt finns tillgänglig för nedladdning.


för det andra, om det nu är "pissenkelt" - kan du då inte göra oss alla en stor tjänst att posta lite fungerande kod som sorterar matriser och som hanterar olika datatyper?

"en algoritm handlar inte ett dugg om vilka kolumner du har"

en algoritm är ett givet sätt att lösa ett visst problem. om mitt problem inkluderar flera kolumner, så är det alltså en delmängd av problemet som skall lösas. en algoritm behöver inte vara, t ex: addera 1 till första mängden. gör så 10 gånger. en algoritm behöver inte vara så snäv, utan kan t ex vara ( i extremfallet): lös världsproblemen.

men men, om det nu är pissenkelt så varför inte posta lite kod till de behövande?




Svara

Sv:Snabb sortering

Postades av 2006-05-16 12:11:35 - Axel Nilsson

sql - visst - men vill inte blanda in vb:s objekt, ado eller vad de nu heter. de är för slöa vid stora datamängder.

vill bara sortera textfiler med inbördes förhållanden.
kolumn 2 måste också byta ordning om kolumn 1 gör det, annars är det ju av noll och ingen nytta med sorteringen.

jag hade en bra sorterare i min c:\temp katalog, tyvärr så har jag deletat den och tänkte höra mig för vad som finns innan jag återigen bygger den igen.


Svara

Sv: Snabb sortering

Postades av 2006-05-16 12:56:02 - Peter Larsson

Det är väl bara att samla kolumnerna i någon datastruktur och sedan sortera på en av dessa, då hänger allt ihop med. Det enda du behöver specificera är vad du vill sortera på.

/Peter


Svara

Sv:Snabb sortering

Postades av 2006-05-16 21:21:06 - Niklas Jansson

Angående tidigare trådar; ja, eftersom frågan inte är direkt relaterad till tråden så passar den inte riktigt in. I övrigt bör man undvika trådar äldre än några månader av flera skäl. Tekniker ändras, det kan vara hårda diskussioner i trådar som man vill undvika att dra upp igen osv.

Angående algoritmer:
Det här handlar om sortertingsagoritmer. Implicit ingår det då två stycken operationer; jämför och byt plats. En sortertingsagoritm har ingenting att göra med vilka element som ingår.

Angående pissenkelt.
Eftersom du tydligen har ett par algoritmer som alla gör samma fel kan jag säga vad du ska ändra i dem.

Du har en algoritm som går igenom en vektor ett antal gånger. Vid något tillfälle testar algoritmen huruvida ett element är mindre än ett annat, vid något tillfälle byter den plats på elementet.

Om vi till exempel tar original-bubblesort:

<code>
dim vektor(1 to n) as integer, i as integer, j as integer, temp as integer
for i = 1 to n
for j = i to n-1
if vektor(j) > vektor(j+1) then
temp=vektor(j)
vektor(j) = vektor(j+1)
vektor(j+1) = temp
end if
next j
next i
</code>

Vi har då de två operationerna jämför ("vektor(j) > vektor(j+1)"), och byt plats ("temp = [...] vektor(j+1) = temp")

De två finns i någon form i alla sortertingsagoritmer.

Vill du då sortera till exempel en matris byter du ut jämförelsen till "matris(1, j) > matris(1, j+1)" och motsvarande med platsbytet.
Typ
temp = matris(, j)
matris( , j) = matris( , j+1)
matris( , j+1) = temp

(i just fallet matris kan ytterligare en loop behövas för att göra själva kopieringen till temporärt element)

Båda grejerna lägger man med fördel i egna metoder. compare(element1, element2) och swap(element1, element2).

Koden blir då:
<code>
dim vektor(1 to n) as integer, i as integer, j as integer, temp as integer
for i = 1 to n
for j = i to n-1
if compare(j, j+1) then
swap(j, j+1)
end if
next j
next i
</code>


Svara

Sv: Snabb sortering

Postades av 2006-05-17 12:17:51 - Axel Nilsson

"Någon som har tips på hur man sorterar stora mulitidimensionella arrayer på snabbast möjliga sätt? "

..precis min frågeställning. således borde det passa sig att "öppna tråden" (den var väl för övrigt inte stängd)

mm, tack för hjälpen.

jag vet hur det funkar, problemet är att jag hade en bra sorterare som jag slarvigt nog raderade. även om jag i teorin vet hur det funkar så är det jag vill undvika att skriva en ny, jag letar efter ett snudd på färdigt projekt att ladda ned.

finsn något bra "sorteringsobjekt" i vb .net, något färdigt? nåt som fungerar vid mkt stora datamängder?


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

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 570 725
27 958
271 751
530
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