您的位置:首页 > 其它

希尔排序

2015-08-05 22:04 211 查看
希尔排序

#include<iostream>
#include<stdio.h>
usingnamespace std;


void ShellSort(int
*data,
intleft,
intright)
{

int len =
right -
left + 1;

int d = len;

while (d > 1)
{
d = (d + 1) / 2;

for (int i =
left; i <
right + 1 - d; i++)
{

if (data[i + d] <
data[i])
{

int tmp =
data[i + d];

data[i + d] =
data[i];

data[i] = tmp;
}
}
}
}


void ShellSort2(int
*data,
intlen)
{

int d =
len;

while (d > 1)
{
d = (d + 1) / 2;

for (int i = 0; i <
len - d; i++)
{

if (data[i + d] <
data[i])
{

int tmp =
data[i + d];

data[i + d] =
data[i];

data[i] = tmp;
}
}

for (int i = 0; i < 10; i++)
printf("%5d",
data[i]);
printf("\n");
}
}
void main()
{

int list[10];

int n = 9, m = 0, i;

printf("input 10 number:");

for (i = 0; i < 10; i++)
scanf("%d", &list[i]);
printf("\n");
ShellSort2(list, 10);

//ShellSort(list,0,9);
printf("\n");

for (i = 0; i < 10; i++)
printf("%5d", list[i]);
printf("\n");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: