用shell脚本实现希尔排序

代码如下:
#!/bin/bash

function shellsort()
{
	let size=$#
	a=($@)
	echo "原序列为:" ${a[@]}
	let gap=$size
	while [ $gap -gt 1 ]
	do
		let gap=gap/3+1 
		#echo "gap=" $gap
    	for(( i=gap; i<size; ++i))
    	do
		#	let key=a[i]
			for((j=i-gap;j>=0;j=j-gap))
			do
				if [ ${a[$j]} -gt ${a[$j+$gap]} ];then
					let temp=a[j]
					let a[j]=a[j+gap]
					let a[j+gap]=temp
				fi
			done
		done
	done
	echo "排序后的序列:" ${a[@]}
}

size=$#
if [ $size = 0 ];then
	echo "请在命令后输入数组,格式如下"
	echo "./filename 1 2 3 4"
else
	shellsort $@
fi

结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值