数据结构之希尔排序

举报
chenyu 发表于 2021/07/27 00:30:22 2021/07/27
【摘要】 1 希尔排序 在要排序的一组数中,根据某一增量分为若干子序列,并对子序列分别进行插入排序。 然后逐渐将增量减小,并重复上述过程。直至增量为1,此时数据序列基本有序,最后进行插入排序。         2 代码实现 #include <stdio.h> void print(int* data, i...

1 希尔排序

在要排序的一组数中,根据某一增量分为若干子序列,并对子序列分别进行插入排序。
然后逐渐将增量减小,并重复上述过程。直至增量为1,此时数据序列基本有序,最后进行插入排序。

 

 

 

 

2 代码实现


  
  1. #include <stdio.h>
  2. void print(int* data, int len)
  3. {
  4. for (int i = 0; i < len; i++)
  5. printf("%d\t", data[i]);
  6. printf("\n");
  7. }
  8. void shellSort(int* data, int length)
  9. {
  10. if (NULL == data || length < 0)
  11. {
  12. printf("NULL == data or length < 0\n");
  13. return;
  14. }
  15. int space = length >> 1;
  16. while (space)
  17. {
  18. //总循环需要执行的个数
  19. for (int i = 0; i < space; ++i)
  20. { //步长中间每走一个ÿ

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/102908527

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。