📄 shell.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
//shell排序算法
void ShellSort(int R[],int n)
{
int i,j,d,k;
int temp;
d=n/2; //d取初值n/2
while(d>0)
{
for(i=d;i<n;i++) //将R[d..n-1]分别插入各组当前有序区中
{
j=i-d;
while(j>=0&&R[j]>R[j+d])
{
temp=R[j]; //R[j]和R[j+d]交换
R[j]=R[j+d];
R[j+d]=temp;
j=j-d;
}
}
printf(" d=%d: ",d); //输出每一趟的排序结果
for(k=0;k<n;k++)
printf("%3d",R[k]);
printf("\n");
d=d/2; //递减增量d
}
}
void main()
{
int k,n=10;
int a[10]={7,6,4,5,2,0,8,9,3,1};
printf("\n");
printf("初始关键字:");
for(k=0;k<n;k++)
printf("%3d",a[k]);
printf("\n");
ShellSort(a,n);//shell排序
printf("排序后的结果为:\n ");
for(k=0;k<n;k++)
printf("%3d",a[k]);
printf("\n");
system("PAUSE");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -