首页 > 解决方案 > BubbleSort Bash 没有排序

问题描述

我在 bash 脚本中的冒泡排序代码既不交换也不排序。帮我解决我做错了什么。

echo "Enter numbers  between 4 and 12"
read n
#declare -a numArray  #declare array of numbers
if [ $n -le 12 -a $n -ge 4 ]
then
        #take input from user
        echo "Enter numbers of array"
        for (( i = 0; i < $n; i++ ))
        do
                read numArray[$i]

        done

        #sorting logic
        for (( i = 0; i < $n; i++ ))
        do
                for (( j = 0; j < $n-1; j++ ))
                do
                        # swapping logic
                        #read numArray[$j]

                        if [[ ${numArray[j]} -gt ${numArray[$((j+1))]} ]]
                        then
                                #echo "in swapping code"
                                temp=${numArray[j]}
                                echo $temp
                                numArray[$j]=${numArray[$((j+1))]}
                                numArray[$((j+1))]=$temp
                        fi
                done
        done
        # print sorted data 
        echo -e "\nSorted Numbers "
    echo "${numArray[*]}"
else
echo "Please enter only values between 4 and 12"
fi

结果:

Enter numbers  between 4 and 12
5
Enter numbers of array
51428

51428
51428
51428
51428

Sorted Numbers 
 51428

标签: bashbubble-sort

解决方案


推荐阅读