利用shell实现数据结构的排序算法
时间: 2023-08-15 08:43:48 浏览: 79
数据结构课程设计五——排序算法综合分析.doc
5星 · 资源好评率100%
在shell中实现排序算法需要使用一些基本的命令,例如for循环、if/else判断语句和数组等。下面是一些常用的排序算法的shell实现:
1. 冒泡排序
```shell
#!/bin/bash
arr=(1 5 3 7 9 2)
len=${#arr[@]}
# 冒泡排序
for (( i=0; i<$len; i++ )); do
for (( j=$i+1; j<$len; j++ )); do
if [[ ${arr[$i]} -gt ${arr[$j]} ]]; then
tmp=${arr[$i]}
arr[$i]=${arr[$j]}
arr[$j]=$tmp
fi
done
done
# 输出排序后的结果
for (( i=0; i<$len; i++ )); do
echo ${arr[$i]}
done
```
2. 快速排序
```shell
#!/bin/bash
arr=(1 5 3 7 9 2)
quick_sort() {
local left=$1
local right=$2
local i=$left
local j=$right
local pivot=${arr[$(( $left + $(( $right - $left )) / 2 ))]}
while [[ $i -le $j ]]; do
while [[ ${arr[$i]} -lt $pivot ]]; do
i=$(( $i + 1 ))
done
while [[ ${arr[$j]} -gt $pivot ]]; do
j=$(( $j - 1 ))
done
if [[ $i -le $j ]]; then
tmp=${arr[$i]}
arr[$i]=${arr[$j]}
arr[$j]=$tmp
i=$(( $i + 1 ))
j=$(( $j - 1 ))
fi
done
if [[ $left -lt $j ]]; then
quick_sort $left $j
fi
if [[ $i -lt $right ]]; then
quick_sort $i $right
fi
}
# 调用快速排序
quick_sort 0 $(( ${#arr[@]} - 1 ))
# 输出排序后的结果
for (( i=0; i<${#arr[@]}; i++ )); do
echo ${arr[$i]}
done
```
这些例子只是排序算法在shell中的实现方式之一,还有其他的实现方式。在实际使用中,需要根据具体情况选择合适的算法和实现方式。
阅读全文