#!/bin/bash # #*************************************************************************** # Author: liwanggui # Date: 2021-05-15 # FileName: bubble_sort2.sh # Description: 冒泡排序, Shell 实现 # Copyright (C): 2021 All rights reserved #*************************************************************************** # array=(15388 2618 636 8654 4459 10033 14032 18761 32334 19623 7298) for (( n=0; n<${#array[@]}; n++)); do flag=0 # 优化选项,定义一个标志,如果发生了排序则 flag 的值为 1 for i in $(seq 0 $[${#array[@]}-1-$n] ); do v=${array[$i]} k=$[$i + 1] [ $k -eq ${#array[@]} ] && k=$i if [[ $v -gt ${array[$k]} ]]; then flag=1 array[$i]=${array[$k]} array[$k]=$v fi echo "${n}-${i}: ${array[@]}" done # 排序没变更时结束循环 [ $flag -eq 0 ] && break sleep 1 done echo ${array[@]}