shell实现冒泡排序

2019-01-24 14:34:31

shell的冒泡排序

直接修改原始数组

  1. #!/bin/bash
  2. arr=(9 8 4 5 6 3 1 2 0 7)
  3. function sort {
  4. len=${#arr[*]}
  5. for (( i = 0 ; i < ${len} ; i ++ )) ; do
  6. for (( x = ${i} ; x < ${len} ; x ++ )) ; do
  7. if [ ${arr[${x}]} -gt ${arr[${i}]} ] ; then
  8. temp=${arr[${x}]}
  9. arr[${x}]=${arr[${i}]}
  10. arr[${i}]=${temp}
  11. fi
  12. done
  13. done
  14. }
  15. echo "排序前:${arr[*]}"
  16. sort
  17. echo "排序后:${arr[*]}"

输出结果

  1. 排序前:9 8 4 5 6 3 1 2 0 7
  2. 排序后:9 8 7 6 5 4 3 2 1 0

返回新的数组

  1. #!/bin/bash
  2. arr=(0 4 1 5 7 8 2 9 3 6)
  3. function sort {
  4. local arr=()
  5. local index=0
  6. for i in $@ ; do
  7. arr[${index}]=${i}
  8. index=$[${index} + 1]
  9. done
  10. for ((i = 0 ; i < ${index} ; i ++)) ; do
  11. for (( x = ${i} ; x < ${index} ; x ++ )) ; do
  12. if [ ${arr[${x}]} -gt ${arr[${i}]} ] ; then
  13. temp=${arr[${x}]}
  14. arr[${x}]=${arr[${i}]}
  15. arr[${i}]=${temp}
  16. fi
  17. done
  18. done
  19. echo ${arr[*]}
  20. }
  21. sortArr=`sort ${arr[*]}`
  22. echo "原始数组:${arr[*]}"
  23. echo "排序数组:${sortArr}"

输出结果

  1. 原始数组:0 4 1 5 7 8 2 9 3 6
  2. 排序数组:9 8 7 6 5 4 3 2 1 0

0
0
0

添加评论

正在回复:
取消
3
0
0
0