All pastes #993254 Raw Edit

ajewhgrtaksudlg

public python v1 · immutable
#993254 ·published 2008-04-22 14:24 UTC
rendered paste body
# My J sort implementation in Iojsort := method(to_sort, strand_threshold,	if(strand_theshold >= 40) then (		writeln("The strand threshold is larger than recommended.")	)		if(to_sort size < strand_threshold) then(		use := 0	) else(		use := 1	)	ret_list := List clone# Strand sort	if(use == 1) then(# Pleasentries...		if(to_sort size == 0) then (			return ret_list		) elseif (to_sort size == 1) then (			ret_list = to_sort at(0)			return ret_list		) elseif(to_sort size == 2) then (			if(to_sort at(0) > to_sort at(1)) then (				ret_list := list(to_sort at(1), to_sort at(0))			) else (				ret_list := list(to_sort at(0), to_sort at(1))			)			return ret_list		)				sub_list := List clone		while(to_sort isNotEmpty,			sub_list empty			sub_list append(to_sort at(0))			to_sort removeAt(0)			to_sort foreach(i,				if(to_sort at(i) > sub_list at(to_sort size - 1)) then (					sub_list append(to_sort at(i))					sub_list removeAt(i)				)			)# Merge the lists (isn't this slow?)			while(sub_list isNotEmpty,				ret_list foreach(i,					if(sub_list at(0) >= ret_list at(i) and 					sub_list at(0) < ret_list at(i + 1)) then (						ret_list atInsert(i + 1, sub_list at(0))						sub_list removeAt(0)						break						)					)				)			)			return ret_list		)# Shuffle sort	))list := list(5, 2, 7, 2, 8, 9, 23, 7, 3, 2, 54, 93, 11, 84, 33, 193, 11, 3, 44)jsort(list, 39)list println