shell脚本编写希尔排序

用shell脚本一些希尔排序

#!/bin/bash

#希尔排序
function shell_sort()
{
    #获取参数,数组
    echo "输入数组长度:"
    read size
    for((i = 0; i < size; ++i))
    do
        echo "输入第$((i))个元素:"
        read array[i]
    done
    echo ${array[*]}

    #进行排序
    let gsp=size
    while [ $gsp -gt 1 ]
    do
        let gsp=gsp/3+1

        for((idx=gsp; idxdo
            let temp=array[idx]
            let pos=idx-gsp
            #搬移元素
            let back=array[pos] 
            while [ $pos -ge 0 -a $back -gt $temp ]
            do
                let array[pos+gsp]=array[pos]
                let pos=pos-gsp
                let back=array[pos]
            done
            let array[pos+gsp]=temp
        done
    done
    echo ${array[*]}
}

shell_sort

你可能感兴趣的:(数据结构)