26 Star 369 Fork 112

cyberdash / 数据结构(C++模板实现)

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
shell_sort.h 1.29 KB
一键复制 编辑 原始数据 按行查看 历史
Y_Dash 提交于 2023-07-03 11:55 . 排序增加readme代码指向
/*!
* @file shell_sort.h
* @author CyberDash计算机考研, cyberdash@163.com(抖音id:cyberdash_yuan)
* @brief 希尔排序
* @version 0.2.1
* @date 2021-09-19
*/
/*!
* @brief **间隔区间插入排序**
* @tparam TElement 数组元素类型模板参数
* @param elements 数组
* @param gap 间隔
* @param length 数组长度
* @note
* 间隔区间插入排序
* -------------
* -------------
*
* -------------
*/
template <typename TElement>
void GapedInsertionSort(TElement* elements, int gap, int length) {
for (int i = gap; i < length; i++) {
if (elements[i] >= elements[i - gap]) {
continue;
}
TElement cur = elements[i];
int j;
for (j = i - gap; j >= 0 && cur < elements[j]; j -= gap) {
elements[j + gap] = elements[j];
}
elements[j + gap] = cur;
}
}
/*!
* @brief **希尔排序**
* @tparam TElement
* @param elements 数组
* @param gaps 间隔数组
* @param length 数组长度
* @param gaps_count 间隔数组长度
* @note
* 希尔排序
* -------
* -------
*
* -------
*/
template <typename TElement>
void ShellSort(TElement* elements, int* gaps, int length, int gaps_count) {
for (int i = 0; i < gaps_count; i++) {
GapedInsertionSort(elements, gaps[i], length);
}
}
C++
1
https://gitee.com/cyberdash/data-structures-cpp.git
git@gitee.com:cyberdash/data-structures-cpp.git
cyberdash
data-structures-cpp
数据结构(C++模板实现)
master

搜索帮助