陕西理工学院毕业设计
temp[pos][order[pos]] = data[i]; order[pos]++; } ++power; for (int i = 0; i < 26; i++) { if (order[i] > 1 && power < getStringMaxLength(temp[i])) { path.setHigh(1); msd(temp[i], power);// msd in every sibling bucks } } for (int i = 0; i < 26; i++) { for (int j = 0; j < data.length; j++) { if (temp[i][j] != null) { data[k++] = temp[i][j];// regain the sorted numbers } } } }
(3) 时间复杂度分析
对于n个记录(假设每个记录含d个关键字,每个关键字的取值范围为rd个值),时间复杂度为O(d(n+rd)),其中每一趟分配的时间复杂度为O(n),辅助存储O(rd);
第 13 页 共 80 页
陕西理工学院毕业设计
3系统设计
3.1系统模块结构
根据需求分析,按功能划分8个模块,分别是:链表插入排序模块、直接插入排序模块、折半插入排序模块、选择排序模块、归并排序模块、堆排序模块、基数排序模块。排序算法动态演示系统功能模块结构图如图3.1所示。
排序算法动态演示系统
链 直 折 交 选 归 堆
表 接 半 换 择 并 排
插 插 插 排 排 排 序
入 入 入 序 序 序
排 排 排 序 序 序
图3.1 系统模块结构图
3.2 模块算法流程图
(1) 直接插入排序
直接插入排序算法流程图如图3.2所示。
开始i = 2i 图3.2 直接插入排序算法流程图 第 14 页 共 80 页 基 数 排 序 陕西理工学院毕业设计 (2) 折半插入排序 折半插入排序算法流程图如图3.3所示。 开始初始化Ni (3) 选择排序 选择排序算法流程图如图3.4所示。 第 15 页 共 80 页 陕西理工学院毕业设计 开始初始化i (4) 快速排序 快速排序算法流程图如图3.5所示。 第 16 页 共 80 页 陕西理工学院毕业设计 开始初始化low < highYl[0] = l[low];pivotkey = l[low];Nlow < highYlow (5) 归并排序 归并排序算法流程图如图3.6所示。 第 17 页 共 80 页