Array sorting 101

BlitzMax Forums/BlitzMax Programming/Array sorting 101

SuperStrict

Type TCar
	Field i_color:Int
	Field color:String
	Field model:String
		
		Method SetColorByInt(i_c:Int)
		
		  i_color = i_c
			
			 Select i_color
			        Case 1 color = "Red"
			        Case 2 color = "Green"
			        Case 3 color = "Blue"
			        Case 4 color = "Purple"
			        Case 5 color = "White"
   			 End Select
			
		End Method
		
		Function SortCarsByColor(A:TCar[])

		  Local swapped:Int = True, i:Int, j:TCar

		

			While swapped
				
				swapped = False
				

					For i = 0 To A.length - 2

					

					If A[i].i_color > A[i + 1].i_color Then

					  j = A[i]
						
						'swap

						A[i] = A[i + 1]

						A[i + 1] = j
						

					   swapped = True

						

					End If

					

					Next

				

			Wend

		

		End Function
		
End Type

Local Car:TCar[100]

For Local n:Int = 0 To 99

    Car[n] = New TCar
	Car[n].SetColorByInt(Rand(5))

Next

Print "Sorting by color...."

TCar.SortCarsByColor(Car)

For Local n:Int = 0 To 99
	
	Print Car[n].color + "~t" + Car[n].i_color
	
Next


BubbleSort!