这是我写的代码
1 sz=(2 1 3 4 5 7 6);
2 for((i=1;i<${#sz[n]};i++));
3 do
4 for((j=0;j<expr ${#sz[n]} - ${i}
;j++));
5 do
6 if [ ${sz[j]} > ${sz[expr $j + 1
]} ];then
7 a=${sz[j]};
8 sz[j]=${sz[expr $j + 1
]};
9 sz[expr $j + 1
]=$a;
10 fi;
11 done;
12 done;
13 echo ${sz[@]}
(刚上路 写的很乱 勿喷)
问题
请dalao帮我解惑,为什么运行结果不是 7 6 5 4 3 2 1
冒泡排序的两层for循环是:
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
你的代码中两层for循环的第二个参数都少减了1