排序算法大集合:插入类(直接插入、折半插入、希尔)、交换类(冒泡、快排)、选择类。反正你想要的我都要。

排序算法——希尔排序 目录 🛴基本介绍 算法思想 🛹实例 思路分析 代码实现 🛵算法性能分析 🛴基本介绍 希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为见效增量排序。 希尔排序的时间复杂度比直接插入排序的时间复杂度小,他与直接插入排序的不同在于它会优先比较距离较远的元素。 算法思想 希尔排序是按照一定的增量进行分组排序,对每组使用直接插入排序算法排序;随着分组个数的减少,每组中元素就会越来越多,当增量减少为1时,排序结束。 🛹实例 原始数组:[8,9,1,7.. 阅读详情

排序总结

      感觉还是要先总结一下排序算法的时间复杂度,空间复杂度,稳定性以及一些需要知道的小细节。

  • 时间复杂度
          平均情况下,快速排序、希尔排序、归并排序和堆排序的时间复杂度都是O(nlogn),其他都是O(n^2)。一个特殊的是基数排序,时间复杂度是O(d(n+r));
          最坏的情况下,快速排序的时间复杂度是O(n^2)
          当然还有,直接插入,冒泡排序有可能是O(n)
  • 空间复杂度
          快速排序是O(logn),归并排序是O(n),基数排序是O®,其他都是O(1)
  • 稳定性
          快速排序、希尔排序、简单选择排序、堆排序是不稳定的,其他都是稳定的。
  • 一些小细节
          1、经过一次排序能够到达最终位置的是交换类(冒牌、快速)和选择类(简单选择、堆)排序
          2、排序算法关键字比较次数与原始序列无关:简单选择排序和折半插入排序。
          3、排序算法的排序趟数与原始序列有关的是:交换类排序

插入类排序

1、直接插入排序

      直接插入排序,是先把原始序列的第一个元素看作一个有序序列,然后依次将剩下的元素插入到这个有序序列中。下面看一个例子:
      原始序列:45 35 65 95 75 15 25 45
      1)一开始只看45,它自己肯定是有序的
      45       35 65 95 75 15 25 45
      2)插入35。35<45,所以45后移一个位置,35插入到原来45的位置
      35 45      65 95 75 15 25 45
      3)插入65。65>45,所以不需要移动,直接将65插入到45后
      35 45 65       95 75 15 25 45
      4)插入95。95>65
      35 45 65 95      75 15 25 45
      5)插入75。75<95,所以95后移一个位置;继续比较,75>65所以75就直接插入到65后
      35 45 65 75 95      15 25 45
      6)插入15。15<95,所以95后移一个位置;继续比较,15<75所以75后移一个位置;继续比较,15<65、、、、经过比较15应该插入最前面
      15 35 45 65 75 95      25 45
      7)插入25。25<95,所以95后移一个位置;继续比较,25<75所以75后移一个位置;继续比较,25<65、、、、经过比较25应该插入15之后
      15 25 35 45 65 75 95      45
      8)插入45。经过比较45 = 45<65应该插入45之后,排序完成
      15 25 35 45 45 65 75 95

直接插入排序代码
void InsertSort(int arr[],int n){
	int i,j;
	int temp;
	for(i=1;i<n;i++){
		temp = arr[i];
		j = i - 1 ;
		while(j>=0&&temp<arr[j]){
			arr[j+1] = arr[j];
			--j;
		}
		arr[j+1] = temp;
	}
}

2、折半插入排序

      折半插入排序和直接插入排序的思想一样,区别就是在插入的时候,通过折半查找的方法寻找插入位置

3、希尔排序

      希尔排序,就是将待排序序列分成几个子序列,然后将子序列进行直接插入排序。就比如说:
      原始序列:45 35 65 95 75 15 25 45 55 05
      1)以增量5分割序列,得到以下几个子序列:
      序列1:45                            15
      序列2:      35                            25
      序列3:            65                            45
      序列4:                  95                            55
      序列5:                        75                            05
      直接对这5个子序列进行直接插入排序,一趟希尔排序的结果为:15 25 45 55 05 45 35 65 95 75
      2)以增量2分割序列:
      序列1:15                55               35               75
      序列2:      25                05               35               65
      序列3:            45                45               35               95
      又一趟希尔排序,结果为:15 05 45 35 25 45 55 65 85 75
      3)最后以1增量分割,也就是直接进行直接插入排序,结果为:05 15 25 35 45 45 55 65 75 95

      希尔排序增量的选择一般有n/2、n/4、、、、、2、1,即每一次将增量除以2并向下取整

交换类排序

1、冒泡排序

      冒泡排序是通过一系列的“交换”动作完成的。首先第一个关键字和第二个关键字比较,如果第一个大,则两者交换,否则不交换;然后第二个关键字与第三个关键字比较,如果第二个关键字大,则交换两者,否则不交换·······一直按这种方式进行下去,最终最大的那个元素被交换到了最后的位置(这是升序,降序的话则将小的往后换),这样就完成了一趟冒泡排序。经过多趟这样的排序,最终使得整个序列有序。比如说:
      原始序列:45 35 65 95 75 15 25 45
      下面进行第一趟冒泡排序
      1)1号与2号比较,35<45,交换。
      结果:35 45 65 95 75 15 25 45
      2)2号与3号比较,65>45,不交换。
      结果:35 45 55 95 75 15 25 45
      3)3号与4号比较,95>65,不交换。
      结果:35 45 65 95 75 15 25 45
      4)4号与5号比较,75<95,交换。
      结果:35 45 65 75 95 15 25 45
      5)5号与6号比较,15<95,交换。
      结果:35 45 65 75 15 95 25 45
      6)6号与7号比较,25<95,交换。
      结果:35 45 65 75 15 25 95 45
      7)7号与8号比较,45<95,交换。
      结果:35 45 65 75 15 25 45 95
      最终,第一趟冒泡排序结束,最大的95被交换到了最后的位置,到达了它最终的位置,接下来将第一趟排序的结果进行第二趟冒泡排序。经过若干趟排序后,最终序列有序。冒泡排序的结束条件是在一趟排序过程中没有发生关键字交换。

//冒泡排序代码
void BubbleSort(int Arr[] , int n ){
	int i , j , flag;
	int temp;
	for(i = n -1 ;i >= 1;--i){
		flag = 0;
		for(j = 1;j <= i;++j){
			if(Arr[j-1] >Arr[j]){
				temp = Arr[j];
				Arr[j] = Arr[j-1];
				Arr[j-1] = temp;
				flag = 1;
			}
		}
		if(flag == 0)  
			return;
	}
}

2、快速排序

      快速排序通过多次划分操作实现排序。其操作流程可以概括为:每一趟排序选择当前子序列中的一个关键字作为枢轴,将子序列中比枢轴小的移到枢轴前面,大的移到后面;当本躺所有子序列都被枢轴按照上述规则划分完毕后会得到新的一组更短的子序列,它们成为下一趟划分的初始序列集。

//快速排序的算法如下:
void QuickSort(int R[],int low ,int higt){
	int temp;
	int i = low , j = high;
	if(low<high){
		temp = R[low];
		while(i<j){
			while(j>i&&R[j]>=temp) j--;//从右往左扫描,找到一个小于temp的
			if(i<j){				   //关键字放到左边
				R[i] = R[j];
				i++;	
			}
			while(j>i&&R[i]<temp) i++;//从左往右扫描,找到一个大于temp的
			if(i<j){				  //关键字放到右边
				R[j] = R[[i];
				j--;
			}
		}
		R[i] = temp;
		QuickSort(R,low,i-1);
		QuickSort(R,i+1,high);
	}
}

选择类排序

1、简单选择排序

      选择类排序主要的动作是“选择”,简单选择排序采用最简单的选择方式,从头至尾顺序扫描序列,找出最小的一个关键组,和第一个关键字交换,接着从剩下的关键字中继续这种选择和交换,最终使得序列有序。

//简单选择排序算法
void selectSort(int R[],int n){
	int i,j,k,temp;
	for(i=0;i<n;i++){
		k = i;
		for(j = i+1;j<n;j++)
			if(R[k]>R[j])
				k = j;
		temp = R[i];
		R[i] = R[k];
		R[k] = temp;
	}
}

2、堆排序

      堆是一种数据结构,可以把堆看作一棵完全二叉树,这棵树满足:任何一个非叶节点的值都不大于(或不小于)其左右孩子结点的值。若父亲大,孩子小,则是大顶堆,反之是小顶堆。
      根据堆的性质,可以知道根节点是最大或最小值,因此可以将一个无序序列转换为一个堆,就可以找到这个序列的最大或最小值,然后将这个最值交换到序列的最前或最后,这样有序序列的关键字增加了一个,无序序列的关键字减少了一个,对新的无序序列继续这种操作,就实现了排序。
      执行过程:
      原始序列:49 38 65 97 76 13 27 49
      (1)建堆
      先将这个序列调整为一个大顶堆。原始序列对应的完全二叉树如下图所示:
在这里插入图片描述
      1)调整97。97>49,所以97和它的孩子满足堆的定义,不需要调整。
      2)调整65。65>13,65>27,所以65和它的孩子满足堆的定义,不需要调整。
      3)调整38。38<97,38<76,所以38和它的孩子不满足堆的定义,需要调整。在这里,38比它的两个孩子的值都小,所以需要和两者中较大的值交换,即和97交换。交换后,38<49,不满足堆的定义,继续调整,将38和49交换,结果如下图所示:
在这里插入图片描述
      4)调整49。49<97,49<65,所以49和它的孩子不满足堆的定义,需要调整。找到较大的孩子97,将49和97交换。交换后49<76不满足堆的定义,继续调整,将49和76交换,结果如下图所示:
在这里插入图片描述
      (2)插入结点
      需要在插入结点后仍保持堆的性质,因此需要将要插入的结点X放在最底层的最右边,插入后满足完全二叉树的特点;然后将X依次向上调整到合适的位置以满足父大子小的性质。
      (3)删除结点
      当删除堆中的一个结点时,可以将最底层最右边的结点的值赋给要删除的结点,然后调整到合适的位置,并将最底层最右边的叶子结点删除。
      (4)排序
      可以看到,现在已经建好了一个大顶堆,对应的序列为:97 76 65 49 49 13 27 38,将38和97交换,第一趟排序完成,97到达最终的位置,将除了97以外的38 76 65 49 49 13 27重新调整为大顶堆,直到树中只剩下一个结点时排序完成。

//堆排序算法代码如下
void sift(int R[],int low,int high)
{
	int i = low,j=2*i; ///R[j]是R[i]的左孩子结点
	int temp = R[i];
	while(j <= high){
		if(j < high && R[j]<R[j+1]){ //若右孩子较大,则将j指向右孩子
			j++;
		}
		if(temp < R[j]){
			R[i] = R[j];  //调整R[j]到双亲结点的位置
			i = j;
			j = 2 * i;
		}else{
			break;
		}
	}
	R[i] = temp; //将调整的结点的值放入最终的位置
}

void heapSort(int R[],int n)
{
	int i;
	int temp;
	for(i = n/2;i>=1;i--){
		sift(R,i,n); //建立初始堆
	}
	for(i = n;i>=2;i--){
		//将根结点中的关键字交换到最后的位置
		temp = R[1];
		R[1] = R[i];
		R[i] = temp;
		sift(R,1,i-1); //将剩余的无序序列进行调整
	}
}
【插入排序算法】 1、请设计直接插入排序算法、折半插入排序算法、希尔排序算法,输出每一趟的排序结果。要求: (1)设计如下图所示中文菜单。 (2)用相关数据分别进行测试,直接插入排序的测试结果如下图所示 阅读详情

相关推荐

从晶体管到触发器:为什么芯片设计必须区分同步/异步复位?

本文深入探讨了芯片设计中同步复位与异步复位的物理本质与工程权衡。从晶体管级的CMOS结构出发,剖析了两种复位方式在物理实现、时序可靠性(如建立/保持时间、恢复/移除时间)上的根本差异,并分析了在不同应用场景下的选择策略。文章强调,理解复位信号的底层机制对于确保芯片时序收敛、系统上电确定性及整体鲁棒性至关重要。

time3的博客 221

三种基本排序(直接插入,直接选择,直接交换)

一:直接选择排序 将一串数分成两部分,前部分是已经排序好的,后部分是未排序的。 开始将第一个数作为已排序的第一个数,未排序数在已排序中找插入的位置即完成排序。 for (i = 1; i < count; i++) { tmp = data[i]; for (j = 0; j < i && tmp >= data[j]; j++) { } for (t = i; t > j; t--) { data[t] = data[t - 1]; }

MagicSound的博客 4万+

unity打包流程整理-Windows/Mac/Linux平台

1.Platform(平台)功能: 选择目标构建的目标平台选项PC, Mac & Linux Standalone: 适用于 Windows、Mac 和 Linux 平台2.Target Platform(目标平台)功能: 选择具体的操作系统版本选项Windows: 针对 Windows 操作系统Mac: 针对 macOS 操作系统Linux: 针对 Linux 操作系统3.Architecture(架构)功能: 选择应用程序的目标处理器架构选项x86: 针对 32 位系统。

weixin_42333247的博客 5135

(1.3.3)插入排序:直接插入、交换插入、折半插入

插入排序:把一个数插入到一个有序的序列中,并要求插入后此数据序列仍然有序。这种排序思想就是插入排序。     那么对于一个原始无序的序列,哪里找有序的部分呢?这个很简单,可以把序列分为两个部分,第一个元素是第一部分,其余元素是第二部分。第一个部分只有一个元素,当然是有序的!对于如何把其余元素插入到第一部分中去,按插入策略,可分为如下几种插入方法: 直接插入:每次a[i]先和前面

JAVA成长之路 4万+

CPU也能跑大模型?手把手教你用vLLM离线部署Qwen2.5-7B-Instruct(附性能优化技巧)

本文详细介绍了如何在CPU服务器上高效部署Qwen2.5-7B-Instruct模型,通过vLLM框架和一系列优化技巧实现离线推理。内容包括环境配置、模型加载优化、性能调优及生产环境部署方案,帮助开发者在资源有限的情况下也能运行大语言模型。

weixin_28691741的博客 489

Foxmail 7.2.25以下版本XSS漏洞实战复现:手把手教你如何构造恶意邮件(含防御方案)

本文深入解析Foxmail 7.2.25以下版本的XSS漏洞(CNVD-2025-06036),详细展示如何构造恶意邮件进行跨站脚本攻击,并提供从客户端升级到企业级防护的多层次防御方案,帮助用户有效防范安全风险。

view3的博客 163

插入排序:直接插入、交换插入、折半插入

插入排序:把一个数插入到一个有序的序列中,并要求插入后此数据序列仍然有序。这种排序思想就是插入排序。 那么对于一个原始无序的序列,哪里找有序的部分呢?这个很简单,可以把序列分为两个部分,第一个元素是第一部分,其余元素是第二部分。第一个部分只有一个元素,当然是有序的!对于如何把其余元素插入到第一部分中去,按插入策略,可分为如下几种插入方法:

CCPP Blog 5万+

论文复现《基于最大李雅普诺夫指数的电力系统暂态电压稳定评估方案》

电力系统暂态电压稳定评估方案 摘要 本研究提出了一种基于最大李雅普诺夫指数的电力系统暂态电压稳定评估方法。通过分析相空间中相邻轨迹的收敛或发散特性,该方法能够提前判别系统稳定性。论文首先阐述了暂态电压稳定机理,详细介绍了最大李雅普诺夫指数的计算方法。针对IEEE-39节点系统,建立了仿真模型并获取不同故障场景下的数据。研究开发了完整的评估程序,包括数据预处理、相空间重构、指数计算等模块,并通过与时域仿真结果的对比验证了方法的准确性。实验结果表明,该方法能够快速有效地评估电力系统的暂态电压稳定性,为系统安全运

max500600的博客 186

数据结构导论-插入排序和交换排序

首先排序分为两大类:内部排序,外部排序,咱们只讨论内部的 一、插入排序 分为直接插入排序、折半插入排序和希尔排序 (1)直接插入排序: 一种情况是数据递减序,数据比较和移动量最大,时间复杂度达到O(n²); 另一种情况数据是递增序,比较和移动最少为O(n) (2)折半插入排序 由于插入第i个元素到R[1]到R[i-1]之间时,前i个数据是有序的,所以可以用折半查找确定插入位置,然后插...

萨摩耶的微笑 1万+

RT-DETR升级:TGRS2026 CKConv结合RepC3 | 方向特征与跨阶段融合协同,小目标漏检率大幅下降

小目标鲁棒性提升:CKConv方向选择性抑制背景噪声,RepC3跨阶段传递保留深层微弱热信号,显著改善低对比度、低信噪比场景下的检测精度。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 151

【异常】Claude Code 第三方API 400报错(thinking type should be enabled or disabled)解决方案

摘要: Claude Code接入第三方API端点时出现400参数错误,主要因新版默认启用的Adaptive Thinking功能与旧版接口参数格式不兼容(需thinking: {type: "adaptive"},但第三方仅支持布尔值)。解决方案为修改本地settings.json配置文件,添加"CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING": "1"环境变量并重启客户端,即可恢复思考模式功能。Adaptive Th

奶爸的编程之路,也就一周冷个三天 1万+

一文理清排序算法中的直接插入、快排和希尔排序的区别

接下来我们把插入排序的特性总结一下。(1) 希尔排序的时间复杂度与增量(即步长gap)的选取有关。例如,当增量为1时,希尔排序退化成了直接插入排序,此时最坏情况时间复杂度为O(n²)。而具有增量的希尔排序的平均时间复杂度为O(n^1.3),希尔排序最好情况时间复杂度是O(n)。(2) 希尔排序的空间复杂度是O(1)。(3)直接插入排序是稳定的,不会改变相同元素的相对顺序。但在不同的插入排序过程中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱。

关注我!带你一路 "狂飙" 到底! 4136

Win11 系统下 VisualStudio2022 配置点云库 PCL1.11.1

安装完成之后打开文件夹E:\PCL 1.11.1\3rdParty\OpenNI2双击 并选择路径 (E:\PCL 1.11.1\3rdParty\OpenNI2) 安装即可全部安装完成之后,将pcl-1.11.1-pdb-msvc2019-win64.zip解压后的 .pdb文件拷贝到(E:\PCL 1.11.1\bin)中设置环境变量:到此,环境变量配置完成。

qq_53545309的博客 1126

三种插入排序算法解析:直接、交换与折半插入的实现思路

插入排序通过构建有序序列逐步处理未排序数据,其优势在于对近乎有序的数据效率极高。三种变体虽然实现方式不同,但都遵循"部分有序→整体有序"的基本逻辑,适合小规模数据或部分有序场景。上实际测试时,发现其编辑器能实时显示算法执行过程,一键部署功能让分享演示变得特别方便。通过修改输入数据可以直观比较三种算法的性能差异,这种可视化方式对理解排序原理很有帮助。时间复杂度为O(n²),但相比冒泡排序减少了不必要的交换。折半插入适合比较操作代价高的场景。特别注意循环不变量的边界处理。

StarfallOwl89的博客 2万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

十大排序①:插入、选择和交换排序

插入排序(直接插入、折半插入和希尔排序)选择排序(直接选择和堆排序)交换排序(冒泡和快速排序)的逻辑及代码

qq_39377889的博客 3967

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

图解希尔排序——希尔排序算法(shell sort)

经典排序算法之希尔排序:希尔排序又叫缩小增量排序,它是对直接插入排序算法的一种改进。希尔排序算法的基本思想是先将整个待排序的序列划分为若干个子序列,然后分别对子序列排序,逐步缩小划分子序列的间隔,直到划分间隔为1时排序完成。............

仅以此博客记录日常学习工作中所思所得,水平有限,难登大雅,万望海涵。 4410

十种常见的排序算法

1.常见算法分类 十种常见排序算法一般分为以下几种: (1)非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入排序和希尔排序)、选择类排序(简单选择排序和堆排序)、归并排序(二路归并排序和多路归并排序); (2)线性时间非比较类排序:计数排序、基数排序和桶排序。 总结: (1)在比较类排序中,归并排序号称最快,其次是快速排序和...

weixin_30920091的博客 4361

排序算法-希尔排序

希尔排序 希尔排序和插入排序很相似,只是在插入排序的基础上进行了分组。 分组的gap大小使用gap = arr.length() / 2; 根据求出的gap将元素每隔gap个间隔进行分组。 如下图: 按照每一组进行插入排序;第一趟排序结果: 第二趟:一趟结束后再次将gap的值变为gap/2;按照同样的方法将数组中的元素按照gap间隔进行分组。 按照同样的方法进行插入排序,一直重复分组-插入排...

阿巴卡的博客 602

希尔排序

希尔排序又叫缩小增量排序,其本质还是排序,只不过是将待排序的序列按某种规则分成几个子序列,分别对这几个子序列进行直接插入排序。如下实例: 原始序列 49  38  65  97  76  13  27  49  55  04 1)先以增量5分割序列,得到以下几个子序列: 子序列1: 49                           13 子序列2:     38      

jianglei_love的专栏 1011

数据结与算法之排序-插入排序(直接插入/折半插入/希尔)

理解三种排序,并将三种排序用C++实现,借鉴了王卓老师和被有难学的知识的图例提示:以下是本篇文章正文内容,下面案例可供参考插入排序是简单直观的排序方法,其思想是每次将一个待排序的记录按其关键字大小插入前面已排好序的子序列,直到全部记录插入完成。用我的话翻译过来就是:一组数据有一部分是已经排好序的,只需要将混乱的部分按照排列好的大小顺序挨个插入到前面已经排好顺序序列里面,使全部数据按顺序排列。类似与整理扑克牌的大小顺序。从上可得,插入排序的要点:1.存:把待排序的数暂存到一个新的位置,也可以是哨兵;

m0_69424406的博客 4407

排序算法 插入排序(直接插入排序、折半插入排序、希尔排序)

所谓折半比较,就是在插入A[i]时,取A[i-1/2]的关键码值与A[i]的关键码值进行比较,如果A[i]的关键码值小于A[i-1/2]的关键码值,则说明A[i]只能插入A[0]到A[i-1/2]之间,故可以在A[0]到A[i-1/2-1]之间继续使用折半比较;(1)计算 0 ~ i-1 的中间点,用 i 索引处的元素与中间值进行比较,如果 i 索引处的元素大,说明要插入的这个元素应该在中间值和刚加入i索引之间,反之,就是在刚开始的位置 到中间值的位置,这样很简单的完成了折半;(2)设置开始查找的位置j;

qq_36511401的博客 1万+

直接插入排序,折半插入排序,希尔排序详解及C++代码详细实现

直接插入排序,折半插入排序,希尔排序详解及C++代码详细实现

weixin_45651616的博客 1881

插入排序(直接插入排序、折半插入排序、希尔排序的算法思想及代码实现)

文章目录插入排序的基本思想直接插入排序直接插入排序的算法思想直接插入排序的实现代码直接插入排序的性能分析折半插入排序折半插入排序的算法思想折半插入排序的实现代码折半插入排序的性能分析希尔排序希尔排序的算法思想希尔排序的实现代码希尔排序的性能分析完整代码 插入排序的基本思想 插入排序是一种简单直观的排序方法,其基本思想是:每一次将一个待排记录按其关键字大小插入到前面已经排好序的有序子序列中,直到全部记录插入完成。 由插入排序的思想可以引申出三个重要的排序算法: 直接插入排序 折半插入排序 希尔排序

薛定谔的猫的博客 3779

插入排序--直接插入排序,折半插入排序,希尔排序

插入排序--直接插入排序,折半插入排序,希尔排序

m0_75220252的博客 2219

【数据结构】排序2——插入排序(直接插入排序、折半(二分)插入排序、希尔排序)

【数据结构】排序2——插入排序(直接插入排序、折半(二分)插入排序、希尔排序)

FishC的博客 2615

希尔排序、快速排序的每一趟

一、希尔排序每一趟 1.【中国海洋大学2007一、4 (8分)】对下列数据表,写出采用希尔排序算法的每一趟排序结果。 (100, 12, 20, 31, 1, 5, 44, 66, 61, 200, 30, 8,150, 4, 8) 设增量序列为: D=(5, 3, 1) 100 12 20 31 1 5 44 66 61 200 30 80 150 4 8 第一趟 5 12 20 .

Anthony_4926 8016
上一篇: 用浅显的话语来讲述栈这种数据结构
下一篇: CSS实现垂直居中的常用方法总结(看了面试必过的那种)
Two_Bits
博客等级 码龄8年 25粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值