Oracle Quick Platoon
DECLARE
TYPE num_tt IS TABLE OF INT
Num_t num_tt:=num_tt ()
PROCEDURE quick_sort (arr_t IN OUT num_tt, i IN INT, j IN INT)
AS
Tmp_i INT: = I
Tmp_j INT: = j
Fir_num INT
BEGIN
IF (I)
< j) THEN fir_num := arr_t(tmp_i); WHILE(tmp_i < tmp_j) LOOP WHILE(tmp_i < tmp_j AND fir_num < arr_t(tmp_j)) LOOP tmp_j := tmp_j - 1; END LOOP; arr_t(tmp_i) := arr_t(tmp_j); WHILE(tmp_i < tmp_j AND fir_num >Arr_t (tmp_i)) LOOP
Tmp_i: = tmp_i + 1
END LOOP
Arr_t (tmp_j): = arr_t (tmp_i)
END LOOP
Arr_t (tmp_i): = fir_num
Quick_sort (arr_t, I, tmp_i-1)
Quick_sort (arr_t, tmp_i+1, j)
END IF
END quick_sort
BEGIN
Num_t.extend (20)
FOR i IN 1..20 LOOP
Num_t (I): = trunc (dbms_random.value (2005100000))
END LOOP
Dbms_output.put_line ('before sort:')
FOR i IN 1..num_t.count LOOP
Dbms_output.put_line (num_t (I) | |',')
END LOOP
Quick_sort (num_t, 1, num_t.count)
Dbms_output.put_line ('after sort:')
FOR i IN 1..num_t.count LOOP
Dbms_output.put_line (num_t (I) | |',')
END LOOP
END