Quicksort

Quicksort este un algoritm de sortare care se bazeaza pe principiul divide et impera, impartind lista care trebuie sortata in subliste mai usor de sortat.

 

#include <Array.au3>
 
Dim $Array[10] = [11,5,6,19,21,18,17,4,10,13]
 
_ArrayDisplay($Array,"Vector nesortat")
 
Quicksort($Array,0,9)
 
_ArrayDisplay($Array,"Vector sortat")
 
Func Quicksort(ByRef $Array,$First,$Last)
	Local $pivot, $i, $j, $temp
	If $First < $Last Then
		$pivot = $First
		$i = $First
		$j = $Last
		While ($i < $j)
			While ($Array[$i] <= $Array[$pivot]) And ($i < $Last)
				$i += 1
			WEnd
			While ($Array[$j] > $Array[$pivot])
				$j -= 1
			WEnd
			If ($i < $j) Then _ArraySwap($Array[$i],$Array[$j])
			_ArraySwap($Array[$pivot],$Array[$j])
			Quicksort($Array,$First,$j-1)
			Quicksort($Array,$j+1,$Last)
		WEnd
	EndIf
EndFunc

* Pentru orice intrebari sau nelamuriri legate de curs sau limbajul AutoIt accesati sectiunea AutoIt a forumului SkullBox sau platforma de suport tehnic NetHelp.