Домой Классы Статические функции Перечисления (ENUM) Структуры (STRUCTURE)

{Sorting|_functions_and_object}


(включая защищенные члены)

CLASS {Sorting|_functions_and_object} , UNTESTED :



Класс для сортировки массивов и сравнения переменных различных типов данных. Использование обобщённых типов данных {?} позволяет сократить запись до одной общей функции, которая может использоваться для обработки массивов различных типов данных (целых, вещественных, байтов, строк).


IMPORT : {System_functions} .



------------------------ 'when Obj inherited from {Sorting} is a parameter'

 

METHOD Data_sort ( INT Count|_items_to_sort )


INT levels_stack[]


  

METHOD data_compare|_override_it_to_provide_comparing_two_items (
     
INT E1|element_index ,
     
INT E2|element_index ) ==> INT , CALLBACK



METHOD data_swap|_to_items_override (
     
INT E1|element_index ,
     
INT E2|element_index ) , CALLBACK



------------------------------------------------------- 'sort simple array'

         

FUNCTION Sort_int|eger_array_qsort_not_recursive (
     
INT A|rray_to_sort [*] )



FUNCTION Sort_int_dec|ending_qsort_not_recursive (
     
INT A|rray_to_sort [*] )



FUNCTION sort_helper_int|eger (
     
INT A|rray_to_sort [*] ,
     
INT Stack|_of_sort [] INDEXING INT ,
     
BOOL,INT Desc|ending_order_if_passed_TRUE_or_FALSE )



FUNCTION Sort_real|_array_qsort_not_recursive (
     
REAL A|rray_to_sort [*] )



FUNCTION Sort_real_desc|ending_array_qsort_not_recursive (
     
REAL A|rray_to_sort [*] )



FUNCTION sort_helper_real (
     
REAL A|rray_to_sort [*] ,
     
INT Stack|_of_sort [] ,
     
BOOL,INT Desc|ending_order )



FUNCTION Sort_str|ing_array_qsort_not_recursive (
     
STR A|rray_to_sort [*] )



FUNCTION Sort_str_desc|ending_array_qsort_not_recursive (
     
STR A|rray_to_sort [*] )



FUNCTION sort_helper_str (
     
STR A|rray_to_sort [*] ,
     
INT Stack|_of_sort [] ,
     
BOOL,INT Desc|ending_order )



-------------------------------------------- 'максимум, минимум двух чисел'

        

FUNCTION IMax|imum_of_two_integer_values (
     
INT A|_operand ,
     
INT B|_operand ) ==> INT , DEPRECATED('Min')



FUNCTION IMin|imum_of_two_values (
     
INT A|_operand ,
     
INT B|_operand ) ==> INT , DEPRECATED('Max')



FUNCTION Max|imum_of_two_values (
     
INT,REAL,STR A|_operand ,
     
INT,REAL,STR B|_operand ) ==> INT,REAL,STR



FUNCTION Min|imum_of_two_values (
     
INT,REAL,STR A|_operand ,
     
INT,REAL,STR B|_operand ) ==> INT,REAL,STR



FUNCTION Index_of_min|imal_in_array (
     
INT,REAL,STR A|rray_to_search_in [*] ) ==> INT



FUNCTION Index_of_max|imal_in_array (
     
INT,REAL,STR A|rray_to_search_in [*] ) ==> INT



FUNCTION Find_min|imal_value_in_array (
     
INT,REAL,STR A|rray_to_search_in [*] ) ==> INT,REAL,STR



FUNCTION Find_max|imal_value_in_array (
     
INT,REAL,STR A|rray_to_search_in [*] ) ==> INT,REAL,STR



---------------------------------------------------------------- 'restrict'

 

FUNCTION Restrict|_by_range (
     
INT,REAL Value|_to_restrict ,
     
INT,REAL Range1|_side ,
     
INT,REAL Range2|_side ) ==> INT,REAL


END