Array sorting 101

BlitzMax Forums/BlitzMax Programming/Array sorting 101

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

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!