# VBForums CodeBank > CodeBank - Other >  [Lua] Bubble Sort Algorithm

## dday9

Here are two functions written in Lua that use the bubble sort algorithm. The input parameter on both is an array, in my function I didn't bother to check if A) it's an array or B) more specifically if it's a number array. These two functions are very simple and pretty self explanatory as I've tried to include quite a bit of notes:



```
function bubbleLowestToHighest(input)

	-- The array that will be returned
	sortedArray = input

	-- The variable that will tell us if the array is sorted
	isSorted = false

	-- Loop until the array is sorted
	while isSorted == false do

		movedElements = 0

		-- Loop through each element in the array(minus the last element)
		for x = 1, table.getn(input) - 1, 1 do

			-- If the element we're on is greater than the element after it
			-- The swap index of the two elements
			if input[x] > input[x + 1] then

				movedElements = movedElements + 1

				testedElement = input[x]

				input[x] = input[x + 1]
				input[x + 1] = testedElement
			end

		end

		if movedElements == 0 then
			isSorted = true
		end


	end

	return sortedArray

end

function bubbleHighestToLowest(input)

	-- The array that will be returned
	sortedArray = input

	-- The variable that will tell us if the array is sorted
	isSorted = false

	-- Loop until the array is sorted
	while isSorted == false do

		movedElements = 0

		-- Loop through each element in the array(minus the last element)
		for x = 1, table.getn(input) - 1, 1 do

			-- If the element we're on is greater than the element after it
			-- The swap index of the two elements
			if input[x] < input[x + 1] then

				movedElements = movedElements + 1

				testedElement = input[x]

				input[x] = input[x + 1]
				input[x + 1] = testedElement
			end

		end

		if movedElements == 0 then
			isSorted = true
		end


	end

	return sortedArray

end
```

----------

