Къде живем! Студенти
Apr 11

Наскоро почнах пак да разцъквам python. Доста интересен и чист език.
Та за играчка реших да напиша малка quicksort функция за сортиране на месив. Знам, че има вградено сортиране и че ще е с пъти по-бързо но…
Това можах да се сетя(сигурен съм че някой с повече опит ще го напише с доста по-добре).


def quicksort(inlist):
	less, equal, greater = [],[],[]

	if len(inlist) <= 1:
		return inlist

	pivot = inlist[-1]

	for i in inlist:
		if i < pivot:
			less.append(i)
		elif i > pivot:
			greater.append(i)
		elif i == pivot:
			equal.append(i)

	ret = quicksort(less)
	ret.extend(equal)
	ret.extend(quicksort(greater))

	return ret

После реших да видя как ще изглежда това написано на php:


function qsort($array){
	$less = $equal = $greater = array();

	if (count($array) <= 1)
		return $array;

	$pivot = current($array);

	foreach($array as $element)
		if ($element < $pivot)
			$less[] = $element;
		else if ($elemnt > $pivot)
			$greater[] = $element;
		else if ($element == $pivot)
			$equal[] = $element;

	return array_merge(qsort($less), $equal, qsort($greater));
}

Както се вижда няма голяма разлика между двете функции.

Leave a Reply

  • Enter this code