linux shell脚本写一个冒泡程序
时间: 2024-05-14 16:17:19 浏览: 163
好的,以下是一个简单的冒泡排序的shell脚本:
```
#!/bin/bash
arr=(10 8 4 6 2)
len=${#arr[@]}
for ((i=0; i<$len; i++)); do
for ((j=0; j<$((len-i-1)); j++)); do
if [ ${arr[j]} -gt ${arr[$((j+1))]} ]; then
temp=${arr[j]}
arr[$j]=${arr[$((j+1))]}
arr[$((j+1))]=$temp
fi
done
done
echo ${arr[@]}
```
这个脚本定义了一个数组arr,并使用冒泡排序对其进行排序。具体来说,它使用两个嵌套的循环,外循环从0到数组长度减1,内循环从0到数组长度减外循环次数减1。在每次内循环中,如果当前元素比下一个元素大,则交换它们。最后,打印出排序后的数组。
相关问题
在linux上使用shell脚本编写冒泡排序
以下是在Linux上使用shell脚本编写冒泡排序的示例:
```shell
#!/bin/bash
# 定义数组
arr=(5 2 9 1 5 6)
# 计算数组长度
len=${#arr[@]}
# 冒泡排序
for (( i=0; i<$len-1; i++ ))
do
for (( j=0; j<$len-i-1; j++ ))
do
if (( ${arr[j]} > ${arr[j+1]} ))
then
# 交换元素位置
temp=${arr[j]}
arr[j]=${arr[j+1]}
arr[j+1]=$temp
fi
done
done
# 输出排序后的数组
echo ${arr[@]}
```
解释一下:
首先定义了一个数组 `arr`,然后计算数组长度 `len`。
接下来进行冒泡排序,外层循环控制排序轮数,内层循环控制每轮比较次数。如果相邻的元素大小关系不正确,则交换它们的位置。
最后输出排序后的数组。
阅读全文