希尔排序是什么
2022-04-01 12:17:04 27
希尔排序(shell)是对插入排序的一个改装,它每次排序把序列的元素按照某个增量分成几个子序列,对这几个子序列进行插入排序,然后不断的缩小增量扩大每个子序列的元素数量,直到增量为一的时候子序列就和原先的待排列序列一样了,此时只需要做少量的'比较和移动就可以完成对序列的排序了.以下是小编为大家搜索整理的希尔排序是什么,希望能给大家带来帮助!更多精彩内容请持续关注我们应届毕业生考试网!
[cpp] view plaincopy
#include ;
void Shell_Sort(int a[],int n)
{
int h,i,j,temp;
for (h=n/2; h>0; h=h/2)
{
for (i=h; i
{
temp = a[i];
for (j=i-h; j>=0 && temp < a[j]; j-=h)
{
a[j+h] = a[j];
}
a[j+h] = temp;
}
}
}
int main(void)
{
int arr[]={1,5,2,4,3,8,6,7,9};
int count=sizeof(arr)/sizeof(int);
Shell_Sort(arr,count);
int k;
for(k=0;k
{
printf("%d",arr[k]);
}
return 0;
}
PHP版本
[php] view plaincopy
$arr=array(1,9);
print "排序前 ";
print_r($arr);
echo "
";
$arr=shell_sort($arr);
print "排序后 ";
print_r($arr);
function shell_sort($array)
{
$count = count($array);
for ($h=intval($count/2); $h>0; $h=intval($h/2))
{
for ($i=$h; $i<$count; $i++)
{
$temp = $array[$i];
for ($j=$i-$h; $j>=0 && $temp < $array[$j]; $j-=$h)
{
$array[$j+$h] = $array[$j];
}
$array[$j+$h] = $temp;
}
}
return $array;
}
?>
- 标签列表
-
- 作文
- 其他类
- 体裁作文
- 节日作文
- 高中作文
- 小学生作文
- 语文
- 美文
- 教育
- 句子
- 阅读
- 古诗文
- 文学赏析
- 大全
- 问答
- 读后感
- 写作指导
- 外语
- 外语课堂
- 名著阅读
- 字数作文
- 祝福语
- 词汇
- 爱好
- 唐代诗人
- 作文素材
- 学历类
- 瑞文网
- 交际礼仪文书
- 歌词
- 高考
- 散文
- 励志
- 观后感
- 古籍
- 计算机类
- 职场
- 造句
- 教案
- 外语类
- 资格证类
- 古诗
- 语录名言
- 阅读答案
- 人物作文
- 书画
- 学科教育
- 句子大全
- 日常行政公文
- 总结
- 课文大全
- 规章制度
- 知识
- 宋代诗人
- 板报大全
- 成语大全
- 近义词
- 诗词
- 工作总结
- 初一作文
- 手抄报
- 诗
- 试题
- 优美句子
- 节日庆典
- 职业技能
- 诗句
- 好词好句
- 诗歌
- 春节
- 现代作家
- 关于什么的作文
- 事务文书
- 名言语录
- 求学指南
- 高校排名
- 素材
- 自然作文
- 教学设计
- 书信函范文
- 词语
- 学生范文
- 大学
- 对联
- 读后感大全
- 演讲稿
- 琴棋
- 初二作文
- 初三作文
- 文艺体育
- 乐谱
- 赏析
- 学习资料
- 语录