VB. NET-ben hogyan tudom növekvő sorrendbe rendezni egy tömb elemeit?
Ismerős a helyzet, a sorbarendezéssel én is mindig szívok :D
A legegyszerűbb a Bubble sort algoritmus:
for (int i = 0; i < maxElemszám; i++)
{
for (int j = 0; j < maxElemszám; j++)
{
if (array[i] < array[j])
{
int c = array[i];
array[i] = array[j];
array[j] = c;
}
}
}
Értelemszerűen cseréld ki a változó neveket, illetve az "int c" esetében a típust, ha nem int.
Ezenkívül, az array namespace rendelkezik Sort metódussal, ezzel primitív elemeket (int, float, string) sorba tudsz rendezni.
Fésűs rendezés nagyon gyors algoritmus 65000-elem 7 másodperc a sulis gépeken:
Sub CombSort(arr As Variant, Optional numEls As Variant, _
Optional Descending As Boolean)
Dim value As Variant
Dim index As Long
Dim firstItem As Long
Dim Gap As Long
Dim Swap As Boolean
' account for optional arguments
If IsMissing(numEls) Then numEls = UBound(arr)
firstItem = LBound(arr)
Gap = numEls - firstItem + 1
Swap = False
Do While (Gap > 1 Or Swap)
' divide Gap by 1.3 - the author says it's an empirical value
If Gap > 1 Then Gap = (10 * Gap) \ 13
' another empirical value
If (Gap = 9 Or Gap = 10) Then Gap = 11
Swap = False
For index = firstItem To numEls - Gap
value = arr(index)
If (value > arr(index + Gap)) Xor Descending Then
' if the items are not in order, swap them
arr(index) = arr(index + Gap)
arr(index + Gap) = value
Swap = True
End If
Next
Loop
End Sub
utolsó volnék ez egy függvény
tömböt át kell adni a függvénynek és utána fut le
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!