lst=(4 2 9 6 5 7 1 0 3 8) #定义数组
n=${#lst[*]} #数组长度
#冒泡
for((i=1; i
do
for((j=0; j
do
if[[ ${lst[j]} -gt ${lst[j+1]}]]; then
t=${lst[j]}
${lst[j]}=${lst[j+1]}
${lst[j+1]}=$t
fi
done
done
echo ${lst[*]} #输出数组
#插入排序
for((i=1; i))
do
for((j=i; j>0; j--))
do
if[[ ${lst[j]} -lt ${lst[j-1]}]]; then
t=${lst[j]}
${lst[j]}=${lst[j-1]}
${lst[j-1]}=$t
fi
done
done
echo ${lst[*]}
#快速排序(归并排序)
function qsort()
{
if(($1 >= $2)); then
return
fi
m=$1
a=${lst[$1]}
for((i=$1; i<=$2; i++))
do
if[[ ${lst[i]} -lt $a]]; then
tm=${lst[++m]}
lst[m]=${lst[i]}
lst[i]=$tm
fi
done
#交换数组第一个与下标为m的,因为第一个作为比较标准一直未动
tt=${lst[$1]}
lst[$1]=${lst[m]}
lst[m]=$tt
qsort $1 $m-1
qsort $m+1 $2
}
qsort 0 $n-1
括号、下标、$等用的比较乱,不过调试通过了,实际使用的时候需要整理!
阅读(1124) | 评论(0) | 转发(0) |