按照8_args中filter.h函数注释的格式，给我写一个sort.h函数的注释。注释内容大致如下：排序函数库提供了用于元素排列的工具，分为增量排序和直接排序。增量排序使用希尔排序算法。直接排序分为直接插入排序、二分插入排序、选择排序、快速排序、堆排序、归并排序等几种不同的算法。首先其中一个实现是增量排序_change_to_sorted。它的功能是在数组从指定位置开始，按特定间隔对相邻元素按升序排列。该函数使用希尔排序算法，具有O(n^1.25)的时间复杂度。请注意，数组必须已经部分排序（仅仅是文中的部分假设，不是函数的限制），例如 radix sort 对大数字进行排序后的状态。该函数的关键使用参量是输入数组、逻辑起始位置和间隔。还有一个函数 형_change_to_sorted，起到相同作用，但排序的方向根据flag的值从改变（从小到大或从大到小）。函数调用成功后通过指针参数返回排序后的数组，并且在失败时返回NULL。注释需要详细描述函数的参数及其作用，返回值，并在注意事项中提到函数的限制或建议。除了必要的函数调用参数、功能描述和注意事项，额外提供“示例”以说明用法。注释宽度不超过74个字符。您的回答将在注释形式--+替代下面是正文，更为合理的格式您可以参照以下格式调整：ighterli slavery--，必须包含一行长横线用于分隔各功能，根据提供的绿色部分字体中例子修改函数为sort.h中的对应函数。
user
∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥
∥ @file sort.h                                                           ∥
∥ @brief 排序函数库提供了多种排序算法的实现                          ∥
∥                                                                       ∥
∥ 排序函数库分为增量排序和直接排序两大类。增量排序 CURRENTLY USING                 ∥
∥ 希尔排序算法；直接排序包含直接插入排序、二分插入排序、选择排序、               ∥
∥ 快速排序、堆排序和归并排序等。                                         ∥
∥                                                                       ∥
∥ @function _change_to_sorted                                          ∥
∥ - @brief 增量排序实现                                                 ∥
∥ - @details 从指定位置开始，按特定间隔进行希尔增量排序，使该数组部分排序。           ∥
∥ - @param [in] arr  - 需要排序的数组指针                                 ∥
∥ - @param [in] start - 逻辑起始位置（元素序号，从 0 开始）               ∥
∥ - @param [in] gap   - 间隔大小（元素的间隔个数）。                       ∥
∥ - @return 成功前往排序后的数据起始位置；若传入 NULL，则返回 NULL            ∥
∥ - @remark 数组在传给此函数前应当已经部分排序，                          ∥
∥ -       这是基于特定排序效果的前提假设，如基数排序后的状态。               ∥
∥ - @example                                                             ∥
∥ - ```c                                                                ∥
∥ - int data[] = {12, 22, 33, 42, 54, 11, 67};                         ∥
∥ - int *sorted_data = _change_to_sorted(data, 2, 2);                   ∥
∥ - ```                                                                 ∥
∥                                                                       ∥
∥ @function _change_dir_sorted                                          ∥
∥ - @brief 按特定顺序的增量排序实现                                      ∥
∥ - @details 根据标志 flag 的值按升序或降序对数组任意部分按指定间隔排序。       ∥
∥ - @param [in] arr  - 需要排序的数组指针                                 ∥
∥ - @param [in] start - 逻辑起始位置（元素序号，从 0 开始）               ∥
∥ - @param [in] gap   - 间隔大小（元素的间隔个数）。                       ∥
∥ - @param [in] flag  - 1 表示升序；其它值为降序                           ∥
∥ - @return 若程序执行成功，一个拷贝的排序后数组；错误则返回 NULL     ∥
∥ - @remark 本算法有许多其他的用途。变量 "data" 的元素须为已经排序应用该函数。  ∥
∥ - @example                                                             ∥
∥ - ```c                                                                ∥
∥ - int data[] = {22, 35, 41, 54, 24, 11, 76};                         ∥
∥ - int *sorted_data = _change_dir_sorted(data, 3, 3, 1);              ∥
∥ - ```                                                                 ∥
∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥
assistant