#include <iostream>
using namespace std;
#define MAXSIZE 5
typedef struct
{
int r[MAXSIZE+1];
int length;
}SqList;
//希尔排序
void ShellSort(SqList *L)
{
int i, j;
int increment = L->length;
do
{
increment=increment/3+1;
for (i=increment+1;i<=L->length;i++)
{
if (L->r[i]<L->r[i-increment])
{
L->r[0]=L->r[i];
for(j=i-increment;j>0&&L->r[0]<L->r[j];j-=increment)
{
L->r[j+increment]=L->r[j];
}
L->r[j+increment]=L->r[0];
}
}
}
while(increment>1);
}
int main()
{
SqList* L = ( SqList* ) malloc( sizeof( SqList ) );//分配内存,初始化
L ->length=6;
for(int i=0;i<L->length;i++)
{
cin>>L ->r[i];
}
for(int i=0;i<L->length;i++)
{
cout<<L ->r[i];
}
ShellSort(L);
for(int i=0;i<L->length;i++)
{
cout<<L ->r[i];
}
}
Python:
L2=[0,9,1,5,8,3,7,4,6,2]
def ShellSort(L2):
increment=9
while increment>1:
increment=increment//3+1
for i in range(increment+1,len(L2)):
if L2[i]<L2[i-increment]:
L2[0]=L2[i]
j=i-increment
while j>0 and L2[0]<L2[j]:
L2[j+increment]=L2[j]
j=j-increment
L2[j+increment]=L2[0]
if increment==1:
break
if __name__ == "__main__":
#ShellSort(L2)
print(L3)

博客展示了希尔排序算法在C++和Python中的实现代码。C++代码定义了顺序表结构,实现了希尔排序函数,并在主函数中进行测试;Python代码同样实现了希尔排序函数。希尔排序是一种重要的排序算法。

被折叠的 条评论
为什么被折叠?



