用ABAP实现的冒泡排序算法
算法 实现 ABAP 冒泡排序
2023-09-14 09:02:49 时间
REPORT ztest_bubblesort.
TYPES:BEGIN OF ty_line,
number TYPE i,
END OF ty_line.
DATA: lt_array TYPE STANDARD TABLE OF ty_line,
ls_array TYPE ty_line,
ls_array_temp type ty_line,
lv_length TYPE i.
DATA: i TYPE i,
j TYPE i,
k TYPE i.
DO 10 TIMES.
CLEAR ls_array.
CALL FUNCTION 'QF05_RANDOM_INTEGER'
EXPORTING
ran_int_max = 100
ran_int_min = 1
IMPORTING
ran_int = ls_array-number
EXCEPTIONS
invalid_input = 1
OTHERS = 2.
IF sy-subrc <> 0.
WRITE:/ 'Error occured.'.
EXIT.
ENDIF.
APPEND ls_array TO lt_array.
ENDDO.
LOOP AT lt_array INTO ls_array.
WRITE: ls_array-number.
ENDLOOP.
lv_length = lines( lt_array ).
i = 1.
DO lv_length - 1 TIMES.
j = lv_length - i.
k = 1.
DO j TIMES.
CLEAR: ls_array, ls_array_temp.
READ TABLE lt_array INTO ls_array INDEX k.
READ TABLE lt_array INTO ls_array_temp INDEX k + 1.
IF ls_array-number > ls_array_temp-number .
MODIFY lt_array FROM ls_array_temp INDEX k.
MODIFY lt_array FROM ls_array INDEX k + 1 .
ENDIF.
k = k + 1.
ENDDO.
i = i + 1.
ENDDO.
WRITE:/ 'result: '.
LOOP AT lt_array INTO ls_array.
WRITE: ls_array-number.
ENDLOOP.
class ZCL_MARCH_SORT definition
public
final
create public .
public section.
types:
tt_table TYPE TABLE OF int4 .
methods BUBBLE_SORT
changing
!CT_TABLE type TT_TABLE .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_MARCH_SORT IMPLEMENTATION.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZCL_MARCH_SORT->BUBBLE_SORT
* +-------------------------------------------------------------------------------------------------+
* | [<-->] CT_TABLE TYPE TT_TABLE
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD bubble_sort.
DATA(length) = lines( ct_table ).
DATA(mark) = 1.
DATA nextnum TYPE int4 .
DATA currentnum TYPE int4 .
DATA tempnum TYPE int4.
DO lines( ct_table ) TIMES .
WHILE mark < length .
IF ct_table[ mark ] > ct_table[ mark + 1 ].
tempnum = ct_table[ mark ] .
ct_table[ mark ] = ct_table[ mark + 1 ] .
ct_table[ mark + 1 ] = tempnum .
ENDIF.
mark = mark + 1.
ENDWHILE.
mark = 1.
length = length - 1.
ENDDO.
ENDMETHOD.
ENDCLASS.
相关文章
- Java实现 蓝桥杯 算法提高 八数码(BFS)
- Java实现 蓝桥杯算法提高 求最大值
- java实现BellmanFord算法
- Java实现 蓝桥杯VIP 算法提高 分数统计
- Java实现 蓝桥杯VIP 算法提高 Quadratic Equation
- Java实现 蓝桥杯VIP 算法提高 高精度乘法
- Java实现 蓝桥杯VIP 算法提高 士兵排队问题
- Java实现 蓝桥杯VIP 算法提高 P0404
- Java实现 蓝桥杯VIP 算法训练 薪水计算
- Java实现 蓝桥杯VIP 算法训练 s01串
- Java实现蓝桥杯 算法训练 ALGO-15 旅行家的预算
- Atitit 算法原理与导论 目录 1. Attilax总结的有用算法 按用途分类1 1.1. 排序算法 字符串匹配(String Matching)1 1.2. 加密算法 编码算法 序列
- CV之IG之DCGAN:基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成(保存h5模型→加载模型)案例应用
- 【智能算法】详解支持向量机(SVM)算法
- m基于VCG拍卖机制的认知无线电频谱竞拍共享算法matlab仿真
- m低信噪比下GPS信号的捕获算法研究,分别使用matlab和FPGA对算法进行仿真和硬件实现
- 基于哈里斯鹰算法优化概率神经网络PNN的分类预测-附代码
- Python实现GWO智能灰狼优化算法优化Catboost回归模型(CatBoostRegressor算法)项目实战
- 【algorithm】算法基础课---排序算法(附笔记 | 建议收藏)
- 混合灰狼和布谷鸟搜索优化算法(Matlab完整代码实现)