C++实现简单的希尔排序Shell Sort实例
本文以实例形式讲述了基于C++实现简单的希尔排序ShellSort的方法,是一个很经典的算法,具体实现代码如下:
#include<iostream>
usingnamespacestd;
voidShellSort(int*iArray,intlength)
{
//初始化jump等于length
intjump=length;
//标记本趟检测是否进行了交换,
//若进行了则还有下次从头开始的检测,
//否则停止,继续改变jump的值做另一趟排序
boolisSwap;
while(jump!=0)
{
//jump每次/2
jump=jump/2;
do{
inti=1;
//初始化表示没有进行交换
isSwap=false;
while(i<=length-jump)
{
if(iArray[i]>iArray[i+jump])
{
inttemp=iArray[i];
iArray[i]=iArray[i+jump];
iArray[i+jump]=temp;
isSwap=true;
}
i++;
}
}while(isSwap==true);//如果进行了交换说明增量为jump的序列
//可能存在不是有序的在检测一遍
//否则说明增量为jump的序列是有序的
}
}
intmain()
{
intiArray[]={0,50,123,36,25,200,36,95,70,14,10,321,1,3,5,8};
ShellSort(iArray,15);
for(inti=1;i<=15;i++)
{
cout<<iArray[i]<<"";
}
cout<<endl;
return0;
}
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短