繁体   English   中英

气泡分选外壳,无输出

[英]Bubble Sort Shell, no output

我在尝试在shell中使用冒泡排序时遇到问题,由于我假设排序正确,因此我不确定自己的问题出在哪里。 我没有收到错误,但根本没有对数字进行排序。

#!/bin/bash

array=( "$@" )
#echo ${array[@]} print all elements in the array

if [ $# -gt 9 ]
then
    echo Too many arguments, run the program over again
    exit
fi

j=0
flag=1
a=${#array[@]}

for((j=0;j < $a - 1 && flag==1 ;j++))
do
flag=0
for((i=0; i< $a-j-1; i++))
do
    x=${array[$i]}
    y=${array[$i+1]}
if ((x>y))
then
    flag=1
    export temp=$x 
    export x=$y 
    export y=$temp
fi
done
done

echo "Sorted Array: " ${array[@]}

如注释中所指出的,您交换变量xy但不交换任何数组条目。 代替

x=${array[$i]}
y=${array[$i+1]}
if ((x>y)); then
    flag=1
    export temp=$x 
    export x=$y 
    export y=$temp
fi

x=${array[$i]}
y=${array[$i+1]}
if ((x>y)); then
    flag=1
    array[$i]="$y"
    array[$i+1]="$x"
fi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM