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:
Code: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




Reply With Quote