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


Sortering

Postades av 2001-05-03 09:35:00 - Per Ljung, i forum visual basic - allmänt, Tråden har 4 Kommentarer och lästs av 875 personer

Hur ser algoritmen för bubbelsortering ut?

Nån som kanske även har en bättre sorteringsalgoritm?

// Per


Svara

Sv: Sortering

Postades av 2001-05-03 10:34:00 - Peter Holm

Hej bubblesort är kanske som bekant en av de sämsta du kan använda.
Men här kommer i alla fall en snutt kod för att visa dig hur den fungerar.

Just denna kod sorterar tecknen i en sträng. Utan hänsyn till stora och
små bokstäver eller svenska tecken. (som ju är omkastade i ascii-tabellen)

Sample Code =====================================

Option Explicit

Private Sub Form_Load()
Debug.Print "Före : " & "bubblesort är en kass sorteringsrutin"
Debug.Print "Efter: " & bubbleSort("bubblesort är en kass sorteringsrutin")
End Sub

Private Function bubbleSort(aStr As String) As String
Dim i As Integer
Dim j As Integer
Dim aChar As String
Dim bChar As String
For j = 1 To Len(aStr)
For i = 1 To Len(aStr) - j
aChar = Mid(aStr, i, 1)
bChar = Mid(aStr, i + 1, 1)
If aChar > bChar Then
swap aChar, bChar
End If
Mid(aStr, i, 1) = aChar
Mid(aStr, i + 1, 1) = bChar
Next i
Next j
bubbleSort = aStr
End Function

Private Sub swap(ByRef aChar As String, ByRef bChar As String)
Dim cChar As String
cChar = aChar
aChar = bChar
bChar = cChar
End Sub

Sample Code =====================================



Jag skulle istället använda "mergesort". Det är en av de snabbare
sorteringsalgoritmer som finns. (Oftast snabbare än quicksort).

Men att ta upp den här skulle bli lite jobbigt och utrymmeskrävande.

Du kan söka på nätet efter följande algoritmer.

InsertionSort
SelectionSort
RadixSort
HeapSort
QuickSort
MergeSort

Kolla denna länk: http://hissa.nist.gov/dads/


/peterh



Svara

Sv: Sortering

Postades av 2001-05-03 11:44:00 - Leif Parmlind

En variant av Quicksort som du kan modifiera att passa den datatyp du vill använda. Brukar duga väldigt bra upp till några hundra tusen items men inte för riktigt stora arrayer.

Sub sortQuickArray(ByRef oneArray() As Double)
Dim a As Double 'This two variables must be changed to
Dim temp As Double 'the smallest possible typ you need
Dim down As Integer
Dim up As Integer
Dim sp As Integer
Dim lL As Integer
Dim hL As Integer
'In most cases it will be enough with an stacksize of 100
'check carefully what will be needed to be sure
Dim myStack(1 To 100) As Integer
myStack(1) = LBound (oneArray)
myStack(2) = UBound (oneArray)
sp = 2
While sp > 0
lL = myStack(sp - 1)
hL = myStack(sp)
sp = sp - 2
a = oneArray(lL)
up = hL
down = lL
While down < up
While Not oneArray(down) > a And down < hL
down = down + 1
Wend
While oneArray(up) > a
up = up - 1
Wend
If down < up Then
temp = oneArray(down)
oneArray(down) = oneArray(up)
oneArray(up) = temp
End If
Wend
oneArray(lL) = oneArray(up)
oneArray(up) = a
If up - 1 - lL > hL - up - 1 Then
If lL < up - 1 Then
sp = sp + 2
myStack(sp - 1) = lL
myStack(sp) = up - 1
End If
If hL > up + 1 Then
sp = sp + 2
myStack(sp - 1) = up + 1
myStack(sp) = hL
End If
Else
If hL > up + 1 Then
sp = sp + 2
myStack(sp - 1) = up + 1
myStack(sp) = hL
End If
If lL < up - 1 Then
sp = sp + 2
myStack(sp - 1) = lL
myStack(sp) = up - 1
End If
End If
Wend
End Sub

Ha det!
\Leif P


Svara

Sv: Sortering

Postades av 2001-05-03 12:03:00 - Per Ljung

Tack för hjälpen. Nu fungerar det.

mh Per Ljung


Svara

Sv: Sortering

Postades av 2001-05-03 12:04:00 - Per Ljung

Tack för hjälpen. Nu fungerar det.

mh Per Ljung


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 619
27 953
271 709
480
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