lua写个冒泡算法
时间: 2023-07-10 16:15:41 浏览: 99
冒泡排序是一种简单的排序算法,可以通过多次比较和交换相邻的元素将一个数组按照升序或降序排列。以下是使用Lua语言实现冒泡排序的示例代码:
```
function bubbleSort(arr)
local n = #arr
for i = 1, n - 1 do
for j = 1, n - i do
if arr[j] > arr[j + 1] then
arr[j], arr[j + 1] = arr[j + 1], arr[j]
end
end
end
end
-- 测试
local arr = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}
bubbleSort(arr)
for i, v in ipairs(arr) do
print(v)
end
```
在上面的代码中,bubbleSort函数接收一个数组arr作为参数,通过两层循环遍历数组中的元素,并进行比较和交换。在每一轮循环中,都会将数组中最大(或最小)的元素排到最后。最终,当所有的轮次完成后,数组就被排序完成了。
在测试代码中,我们使用了一个随机数组进行测试,并打印出排序后的结果。
相关问题
Lua写一个冒泡排序
以下是Lua实现冒泡排序的代码:
local function BubbleSort(t)
local count = #t
for i = 1, count - 1 do
for j = 1, count - i do
if t[j] > t[j+1] then
t[j], t[j+1] = t[j+1], t[j]
end
end
end
end
-- 示例
local a = {1,3,5,2,6,8,10,3,6,20}
BubbleSort(a)
for k, v in pairs(a) do
print(v)
end
在这个示例中,我们定义了一个名为BubbleSort的函数,它接受一个数组作为参数,并使用冒泡排序算法对其进行排序。在主程序中,我们创建了一个数组a,并将其传递给BubbleSort函数进行排序。最后,我们使用for循环遍历数组并打印每个元素。
用lua写一个冒泡排序
### 回答1:
这是一个很简单的算法,可以用以下代码实现:
-- 冒泡排序
function bubbleSort(arr)
local len = #arr
for i = 1, len do
for j = 1, len - 1 do
if arr[j] > arr[j + 1] then
arr[j], arr[j + 1] = arr[j + 1], arr[j]
end
end
end
end
### 回答2:
冒泡排序是一种简单但效率较低的排序算法,在Lua中可以通过利用循环和条件判断来实现它。
下面是使用Lua语言编写的冒泡排序算法:
```lua
-- 冒泡排序
function bubbleSort(arr)
local len = #arr
for i = 1, len - 1 do
for j = 1, len - i do
if arr[j] > arr[j+1] then
arr[j], arr[j+1] = arr[j+1], arr[j]
end
end
end
return arr
end
-- 测试
local arr = {10, 5, 8, 2, 1}
local sortedArr = bubbleSort(arr)
for i, v in ipairs(sortedArr) do
print(v)
end
```
在这个例子中,我们定义了一个名为`bubbleSort`的函数,该函数接受一个数组作为参数,并在函数内部执行了冒泡排序的逻辑。外层的`for`循环用于遍历数组,并控制比较的轮数,内层的`for`循环用于进行相邻元素的比较和交换。如果前一个元素大于后一个元素,则交换它们的位置。通过重复这个过程,最大的元素会逐渐“浮”到数组的末尾。最后,函数返回排序后的数组。
在测试部分,我们创建了一个包含5个元素的数组,并调用`bubbleSort`函数对其进行排序。最后,我们遍历排序后的数组,使用`print`函数打印出来。
需要注意的是,冒泡排序算法的时间复杂度为O(n^2),当数组规模较大时性能较差,因此在实际应用中更常使用其他更高效的排序算法。
### 回答3:
冒泡排序是一种简单的排序算法,其原理是通过不断比较相邻的两个元素,如果顺序不对则交换位置,直至整个序列有序。以下是用Lua语言实现冒泡排序的代码:
```lua
function bubbleSort(arr)
local n = #arr
for i = 1, n - 1 do
for j = 1, n - i do
if arr[j] > arr[j + 1] then
arr[j], arr[j + 1] = arr[j + 1], arr[j]
end
end
end
return arr
end
-- 测试
local arr = {9, 7, 5, 3, 1, 8, 6, 4, 2}
local sortedArr = bubbleSort(arr)
-- 输出排序后的结果
for i = 1, #sortedArr do
print(sortedArr[i])
end
```
以上代码定义了一个名为`bubbleSort`的函数,接受一个数组作为参数,并返回排序后的数组。函数中的两个嵌套循环分别用于遍历数组和比较相邻元素,并交换位置。最后,我们通过打印输出排序后的数组来进行测试。
假设待排序数组为[9, 7, 5, 3, 1, 8, 6, 4, 2],经过冒泡排序后,输出结果为[1, 2, 3, 4, 5, 6, 7, 8, 9]。以上就是用Lua语言实现冒泡排序的一个示例。
阅读全文