3dsmax 脚本 快速排序

--快速排序 
--arr 可以是数字或者字符串
--left 起点
--right 终点,一般为arr.count
fn QuickSort arr left right = (
		if left < right then(
				mid = GetMid arr left right
				QuickSort arr left (mid-1)
				QuickSort arr (mid+1) right 
			
			) --if end
		arr		--返回arr
	
	)--fn end

--获取Povit的索引
fn GetMid arr left right = (
		povit = arr[left]
		while left < right do (
			
			while arr[right] >= povit and left < right do  (
				right -= 1
				)	--while end
			Swap arr[right] arr[left]
			while arr[left] <= povit and left < right do (
					left += 1
				) --while end
			Swap arr[left] arr[right]	
			
			)--while end
		arr[left] = povit
		return left
	)
str = #("a","c","d","b","apple","orgemate")
ss = #(10,12,2,5,3,20,224,555,125)

QuickSort ss 1 (ss.count)	--调用方法
QuickSort str 1 (str.count)	--调用方法

ss排序:	#(2, 3, 5, 10, 12, 20, 125, 224, 555)
str排序:	#("a", "apple", "b", "c", "d", "orgemate")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值