老爷子88 发表于 2018-9-10 06:56:55

oracle heap_sort

  CREATE OR REPLACE PACKAGE heap_sort_pkg
  AS
  TYPE num_arr_tt IS TABLE OF PLS_INTEGER INDEX BY PLS_INTEGER;
  PROCEDURE add_nums(num_arr_inst IN OUT num_arr_tt, dvalue INT);
  PROCEDURE del_nums(num_arr_inst IN OUT num_arr_tt);
  FUNCTIONget_maxval(num_arr_int INOUT num_arr_tt) RETURN INT;
  END heap_sort_pkg;
  CREATE OR REPLACE PACKAGE BODY heap_sort_pkg
  AS
  PROCEDURE add_nums(num_arr_inst IN OUT num_arr_tt, dvalue INT)
  AS
  dest_loc INT := num_arr_inst.count + 1;
  tmp_locINT := trunc(dest_loc / 2);
  BEGIN
  WHILE(tmp_loc > 0 AND dvalue > num_arr_inst(tmp_loc)) LOOP
  num_arr_inst(dest_loc) := num_arr_inst(tmp_loc);
  dest_loc := tmp_loc;
  tmp_loc := trunc(dest_loc / 2);
  END LOOP;
  num_arr_inst(dest_loc) := dvalue;
  END add_nums;
  PROCEDURE del_nums(num_arr_inst IN OUT num_arr_tt)
  AS
  lvalue INT;
  rvalue INT;
  umarkINT := 1;
  tmarkINT := umark;
  tvalue INT := num_arr_inst(num_arr_inst.count);
  BEGIN
  IF(num_arr_inst.count
页: [1]
查看完整版本: oracle heap_sort