当前位置: 首页 > news >正文

Ciura序列

一 概述

      Ciura序列是一种用于希尔排序(Shell Sort)的高效增量序列。  由Marcin Ciura于2002年通过实验提出。
 1)经验证最优的初始序列为:[1, 4, 10, 23, 57, 132, 301, 701]
2) 后续增量可通过最后一个元素乘以2.25生成(如:701*2.25=1577,1577*2.25=3548...)。
3)时间复杂度约为O(n^{3/2}),优于传统希尔排序的O(n^2)。

二  C++实现步骤

void shellSortCiura(vector<int>& arr) {
    vector<int> gaps = {701, 301, 132, 57, 23, 10, 4, 1}; // 逆序排列
    
    for (int gap : gaps) {
        for (int i = gap; i < arr.size(); ++i) {
            int temp = arr[i];
            int j;
            for (j = i; j >= gap && arr[j - gap] > temp; j


http://www.mrgr.cn/news/95475.html

相关文章:

  • C++::多态
  • Linux笔记---文件系统软件部分
  • 基于 Vue 3 的PDF和Excel导出
  • 干货!三步搞定 DeepSeek 接入 Siri
  • 单播、广播、组播和任播
  • 【通过Groovy去热修复线上逻辑】1.执行线上数据修复 2.写工具
  • STM32__红外避障模块的使用
  • Cursor从小白到专家
  • Jupyter Notebook 常用命令(自用)
  • 动态规划入门详解
  • DeepSeek本地搭建
  • git | 回退版本 并保存当前修改到stash,在进行整合。[git checkout | git stash 等方法 ]
  • C语言【文件操作】详解中(会使用fgetc,fputc,fgets,fputs,fscanf,fprintf,fread,fwrite函数)
  • 【day1】数据结构刷题 链表
  • 通俗易懂搞懂@RequestParam 和 @RequestBody
  • 细说卫星导航:测距定位原理
  • 【算法笔记】图论基础(一):建图、存图、树和图的遍历、拓扑排序、最小生成树
  • TCP | 序列号和确认号 [逐包分析] | seq / ack 详解
  • 介绍一个测试boostrap表格插件的好网站!
  • 自动驾驶系统的车辆动力学建模:自行车模型与汽车模型的对比分析