冒泡排序的原理
冒泡排序的原理(以递增序为例)是每次从头开始依次比较相邻的两个元素,如果后面一个元素比前一个要大,说明顺序不对,则将它们交换,本次循环完毕之后再次从头开始扫描,直到某次扫描中没有元素交换,说明每个元素都不比它后面的元素大,至此排序完成。
由于冒泡排序简洁的特点,它通常被用来对于计算机程序设计入门的学生介绍算法的概念。
冒泡排序的过程
第一种方法
#!/bin/bash
# 冒泡排序
score=(70 10 40100 5 60)
for ((i=1;i<s{#score[*]};i++))
do
for ((j=0; j<${#score[*]}-$i;j++))
do
if [ ${score[j]} -gt ${score[$(($j+1))]} ]
then temp=${score[j]}
score[j]=${score[$(($j+1))]}
score[$(($j+1))]=$temp
fi
done
done
echo ${score[*]}
第二种方法
#!/bin/ bash
#键盘输入冒泡排序
k=0
while true
do
read -p "是否需要输入数值? " do
if [ $do == "no"]
then break
fi
read -p "请输入第$(($k+1))个元素" key
score[$k]=$key
let k++
done
for ((i=1; i<${#score[*]};i++))
do
for ((j=0;j<${#score[*]}-$i;j++))
do
if [ ${score[j]} -gt ${score[j+1]} ]
then temp=${score[j]}
score[j]=${score[$(($j+1))]}
score[$(($j+1))]=$temp
fi
done
done
echo ${score[*]}