oracle 用过程和包来实现冒泡、选择、快速三种排序方法,如下:
程序如下,四个地方要写相应的代码。其中有三个地方分别需要填入冒泡、快速、选择三种排序的方法,还有一处要打印出结果的代码
CREATE OR REPLACE
PACKAGE APPS.SORTING as
TYPE REC_CURRENT_IQC IS RECORD (
IQC_HEAD VARCHAR2(30),
QTY NUMBER
);
TYPE TAB_CURRENT_IQC IS TABLE OF REC_CURRENT_IQC
INDEX BY BINARY_INTEGER;
PROCEDURE Array_MAIN;
PROCEDURE Initial_Array(P_A IN OUT TAB_CURRENT_IQC);--初始化数组
PROCEDURE Main_QuickSort(P_A IN OUT TAB_CURRENT_IQC);--快速排序法
procedure SelectionSort(P_A IN OUT TAB_CURRENT_IQC);--选择排序法
procedure BubbleSort(P_A IN OUT TAB_CURRENT_IQC);--冒泡排序法
PROCEDURE Print_Array(P_A IN OUT TAB_CURRENT_IQC);--打印数组
END SORTING;
/
-- End of DDL script for SORTING
-- Start of DDL script for SORTING
-- Generated 24-十月-03 3:38:25 pm
-- from terp-APPS:1
-- Package body SORTING
CREATE OR REPLACE
PACKAGE BODY APPS.SORTING as
PROCEDURE Initial_Array(P_A IN OUT TAB_CURRENT_IQC) IS
V_TOT NUMBER:=500;
V_CNT NUMBER;
BEGIN
v_cnt:=1;
loop
exit when v_cnt >500;
P_A(v_cnt).QTY :=v_tot;
v_cnt :=v_cnt + 1;
v_tot :=v_tot - 1;
end loop;
--Print_Array(P_A);
END;
PROCEDURE Print_Array(P_A IN OUT TAB_CURRENT_IQC) is
begin
NULL;--请自己写实现代码
dbms_output.put_line('Please finish it !');
end;
procedure BubbleSort(P_A IN OUT TAB_CURRENT_IQC) IS
BEGIN
NULL;--请自己写实现代码
dbms_output.put_line('Please finish it !');
end;
--{ TSelectionSort }
procedure SelectionSort(P_A IN OUT TAB_CURRENT_IQC) IS
begin
NULL;--请自己写实现代码
dbms_output.put_line('Please finish it !');
END;
PROCEDURE Main_QuickSort(P_A IN OUT TAB_CURRENT_IQC) IS
begin
NULL;--请自己写实现代码
dbms_output.put_line('Please finish it !');
End;
PROCEDURE ARRAY_MAIN is
v_temp_array TAB_CURRENT_IQC;
v_date date;
begin
dbms_output.put_line('---------------Initial-------------');
Initial_Array(v_temp_array);
dbms_output.put_line('---------------Print Array-------------');
--Print_Array(v_temp_array);
dbms_output.put_line('---------------Quick Sorting-------------');
v_date :=sysdate;
Main_QuickSort(v_temp_array);
--Print_Array(v_temp_array);
dbms_output.put_line('*****'||to_char(sysdate-v_date));
--*****************************************
dbms_output.put_line('---------------Initial-------------');
Initial_Array(v_temp_array);
dbms_output.put_line('---------------Print Array-------------');
--Print_Array(v_temp_array);
dbms_output.put_line('---------------Selection Sorting-------------');
v_date :=sysdate;
SelectionSort(v_temp_array);
--Print_Array(v_temp_array);
dbms_output.put_line('*****'||to_char(sysdate-v_date));
--*****************************************
dbms_output.put_line('---------------Initial-------------');
Initial_Array(v_temp_array);
dbms_output.put_line('---------------Print Array-------------');
--Print_Array(v_temp_array);
dbms_output.put_line('---------------Bubble Sorting-------------');
v_date :=sysdate;
BubbleSort(v_temp_array);
--Print_Array(v_temp_array);
dbms_output.put_line('*****'||to_char(sysdate-v_date));
end;
END SORTING;
/