Code archives/Algorithms/Bubble Sorting

This code has been declared by its author to be Public Domain code.

Download source code

Bubble Sorting by Regular K2005
Simple array bubble sorting
; Note this is made in BlitzPlus, the print commands may not work the same in Blitz3D
length%=5
Dim Array(length%)
Print "==Creating Random List=="
For i%=0 To length%
	Array(i%)=Rand(1,300)
	Print Array(i%)
Next
Print "==Bubble Sorting List=="
For i%=length% To 1 Step -1
	For j%=0 To i%-1
		If Array(j%)>Array(j%+1)
			Temp%=Array(j%)
			Array(j%)=Array(j%+1)
			Array(j%+1)=Temp%
		EndIf
	Next
Next
Time%=MilliSecs()-Start%
Print "Took " +Time%+ " ms to calculate."
Print "==Sort Result=="
For i%=0 To length%
	Print Array(i%)
Next
Print "===="
Repeat
Forever

Comments

Grey Alien2005
Check out this example. It contains a Swap variable so that it can abort the loop as soon as the list is sorted. Much faster for lists that are already fairly well sorted:
    For i = TotalFruit-1 To 0 Step - 1
        Local swap = 0
        For j=1 To i
            If FruitArray(j)\y > FruitArray(j-1)\y              	
            	swap = 1
            	Local tempf.fruit = FruitArray(j)
            	FruitArray(j) = FruitArray(j-1)
            	FruitArray(j-1) = tempf            	
            EndIf
        Next
        If swap = 0 Then Exit
    Next



Code Archives Forum