Jag har med koden nedan slumpat fram en tvådimensionell array. Nu vill jag sortera den så att den blir stigande. Först efter den första kolummnen, sedan efter den andra kolumnen osv.Sorteringsalgoritm med tvådimensionella arrayer
ex:
1 0 0 1 0 0
1 0 0 0 0 0
0 0 1 0 0 1
0 0 0 0 0 0
0 1 1 0 1 0
0 1 0 1 0 1
blir till:
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 1 0 1
0 1 1 0 1 0
1 0 0 0 0 0
1 0 0 1 0 0
Min kod ser ut så här:
<code>
Dim array(5,5)
Randomize
for x = 0 to 5
for Y = 0 to 5
array(x,y) = Int(Rnd * 2)
Next
Next
for x = 0 to 5
Response.Write("<P>")
for Y = 0 to 5
Response.Write(array(x,y) &" ")
Next
Next
Response.Write("<HR>")
y = 0
klart = false
do until klart
klart = true
for x = 0 to 5
if not x >= 5 Then
if y = 0 then
if array(x,y) > array(x+1,y) Then
for z = 0 to 5
slask = array(x,z)
array(x,z) = array(x+1,z)
array(x+1,z) = slask
next
klart = false
end if
else
if array(x,y-1) = array(x+1,y-1) Then
if array(x,y) > array(x+1,y) Then
for z = 0 to 5
slask = array(x,z)
array(x,z) = array(x+1,z)
array(x+1,z) = slask
next
klart = false
end if
end if
end if
end if
Next
loop
for x = 0 to 5
Response.Write("<P>")
for Y = 0 to 5
Response.Write(array(x,y) &" ")
Next
Next
</code>
Rent logiskt så tycker jag att jag ska lägga in en loop som loopar fram y, men av någon anledning så får jag en oändlig loop då.